gpt4 book ai didi

jQuery 验证数据属性中的自定义规则

转载 作者:行者123 更新时间:2023-12-03 23:03:27 24 4
gpt4 key购买 nike

我有一个输入文本,其中已经有一些验证规则

<input type="text" value="" placeholder="Write the code here" 
name="myCode" id="myCode" data-rule-required="true"
data-msg-required="Required field" class="form-control"
aria-required="true">

并创建了自定义规则来验证代码的语法

$("#myCode").rules("add", { checkCode: 
function () {
return $('input[name=codeText]').val();
}
});

通过此方法,我定义应该使用 checkCode 方法来验证 myCode ,该方法又在输入中接收 codeText 的值.

这确实非常有效。但是,为了保持代码干净,我想将规则定义移动到 data-* 属性内,但我无法理解如何编写代码来动态传递相当于 return $( '输入[name=codeText]').val()。请看下面的问号。

<input type="text" value="" placeholder="Write the code here" 
name="myCode" id="myCode"
data-rule-required="true" data-msg-required="Required field"
data-rule-checkCode="????" data-msg-checkCode="Invalid code"
class="form-control" aria-required="true">

我必须在属性值中放入什么???

编辑

根据 Sparky answer我最终将所有选择器放在属性上。像这样:

<input type="text" value="" placeholder="Write the code here" 
[...]
data-rule-checkCode="input[name=codeText]"
[...]>

并在我的方法中像这样使用它

$.validator.addMethod("checkCode", function(value, element, param) {
return $(param).val();
}, '...');

最佳答案

and have created a custom rule to validate the syntax of the code

$("#myCode").rules("add", { checkCode: 
function () {
return $('input[name=codeText]').val();
}
});

.rules() 方法不是创建自定义规则的方法。这只是您在特定输入上声明现有规则的方式。

的。 .addMethod() 方法是您创建自定义规则的方法。

jQuery.validator.addMethod("checkCode", function(value, element) {
return $('input[name=codeText]').val();
}, 'Please enter a valid email address.');

然后您可以使用 .rules('add') 将其分配给您的字段...

$('input[name="myCode"]').rules('add', {
checkCode: true
});

查看:http://jqueryvalidation.org/jQuery.validator.addMethod/

<小时/>

或者,您可以通过将名称作为参数传递来使该方法通用...

jQuery.validator.addMethod("checkCode", function(value, element, param) {
return $('input[name=' + param + ']').val();
}, 'Please enter a valid email address.');

然后将其分配到您的字段...

$('input[name="myCode"]').rules('add', {
checkCode: "codeText"
});
<小时/>

就使用数据属性而言,当您动态使用 .rules() 方法时,尚不清楚为什么需要这样做。

也许在正确创建 checkCode 规则后,您可以简单地使用 data-rule-checkCode="true"data-rule-checkCode 声明它=“代码文本”

关于jQuery 验证数据属性中的自定义规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33055593/

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