gpt4 book ai didi

javascript - JQuery 验证插件 : How do I get it to revalidate

转载 作者:行者123 更新时间:2023-11-30 13:38:37 26 4
gpt4 key购买 nike

网址:http://tinyurl.com/358lh6a

每当 DomainSelect(域扩展名)无论如何更改时,我都想重新验证宫殿地址(他们想要的域,形式是:名称)。

我尝试了一个简单的方法:

<select id=DomainSelect name=DomainSelect onChange="$('#Register').validate().element('#Name');">

虽然没有成功。我不确定 .element 是否真的重新验证了表单元素,或者只是返回 true 或 false。

此外,应该注意的是,当包更改时,DomainSelect 将被完全删除并输入新值(这可能会弄乱某些东西)。如果可以建议另一种方法,例如某种隐藏。

编辑:

查看插件源码,我查看远程函数:

remote: function(value, element, param) {
if ( this.optional(element) )
return "dependency-mismatch";

var previous = this.previousValue(element);
if (!this.settings.messages[element.name] )
this.settings.messages[element.name] = {};
previous.originalMessage = this.settings.messages[element.name].remote;
this.settings.messages[element.name].remote = previous.message;

param = typeof param == "string" && {url:param} || param;

if ( previous.old !== value ) {

这里的重要部分是 previous.old !== value。因为我实际上只是在验证#Name,并在 HTTP POST 中使用#DomainSelect...#Name 值永远不会改变,所以函数不会触发。'

我可以解决这个问题的一种方法是创建一个隐藏的输入,将#Name 和#DomainSelect 连接在一起,然后验证它,这样值就会改变。除非别人想出更好的主意。另一种选择是使用我自己的方法,但是我已经为 Http 请求等编写了不必要的代码。

编辑:我决定尝试制作一个隐藏的输入,它采用两个输入的值,然后对其进行验证。代码乱七八糟:

<input name=Name id=Name size=17 onKeyUp="$('#NameDomainSelect').val(   $('#Name').val() + $('#DomainSelect').val()     );$('#NameDomainSelect').valid();">
<select id=DomainSelect name=DomainSelect onChange="$('#NameDomainSelect').val( $('#Name').val() + $('#DomainSelect').val() );$('#NameDomainSelect').valid();">

Name 是子域,DomainSelect 是域本身。然后将 NameDomainSelect 与 Name 和 DomainSelect 连接起来。然后我必须为 NameDomainSelect 定义一个规则并稍微修改我的 PHP。但是,现在它显示了 2 个复选标记,因为它同时验证了 Name(对于必需的)和 NameDomainSelect...唉...

所以我决定作为一种解决方法,直到有人告诉我修改验证的远程函数以接受数组作为参数。 0 元素是一个字符串,指向要包含的表单值,在本例中是 DomainSelect...而 1 元素是 ajax 请求的正常对象。

if (!param[0] == "") value = value + $("#" + param[0]).val();
...
param = typeof param[1] == "string" && {url:param[1]} || param[1];

对于不需要依赖 2 个值的远程调用,我只需将 0 元素设置为“”。

最佳答案

尝试:

<select id="DomainSelect" name="DomainSelect" onChange="$('#Name').valid();">

如果不起作用,我会建议您添加另一个自定义方法,如您之前所说...

关于javascript - JQuery 验证插件 : How do I get it to revalidate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3528207/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com