我知道这似乎是一个重复的问题,但我已经阅读了所有其他问题,但它们并不完全相同:(
我有一些下拉菜单,如果它们有其他选项,则选择值为“0”的选项,那么我希望需要相应的到期日期字段。
我尝试将规则放入对象的类中,并使用规则('add')函数。这就是我现在所处的位置:
$('[id^=ExpiryDate]').each(function() {
$(this).rules('add',
{ required: function() {
if ($('#q' + id).val() == '0') {
return false;
}
else {
return true;
}
}
}
);
我的到期日期字段的 ID 为“ExpiryDate1”、“ExpiryDate2”,相应的下拉菜单的 ID 为“q1”和“q2”。
这使我的脚本失败。它不会在错误控制台或 Firebug 中给出任何错误。但它也不执行其后发生的任何 javascript。
我有一种感觉,我错过了一些非常明显和愚蠢的东西。但我已经盯着这个代码几个小时了,但找不到它!
提前致谢!
最佳答案
试试这个:
$('[id^=ExpiryDate]').each(function() {
var id = $(this).attr('id').replace('ExpiryDate','');
$(this).rules('add', {
required: function() {
return $('#q' + id).val() !== '0';
}
}
);
目前,您的 id
未定义,因此它只是找不到任何元素。其余的只是一个较短的版本。
关于javascript - jquery验证: adding a required rule with custom message based on wether a different form field has a value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2364271/