gpt4 book ai didi

javascript - jQuery 验证引擎需要阻止我的自定义所需验证器

转载 作者:行者123 更新时间:2023-11-28 09:41:10 25 4
gpt4 key购买 nike

我有一个带有 2 个文本输入和 2 个单选按钮的表单。一个单选按钮表示客户希望所有 future 的沟通都通过纸质邮件进行,另一个按钮表示客户希望通过电子邮件进行沟通。

当用户选择电子邮件时,用户需要用他的电子邮件地址填写输入文本框之一。当用户选择邮政时,他必须在另一个框中填写邮政地址。

我有一个自定义的 jquery 验证引擎函数:

function checkBillRoutePostalAddressConflict(field, rules, i, options){
var fieldValue = field.val();
var accountIdR = field.attr('id').match(/\d+$/);
var radioButton = jQuery('#postalBillsDestination_' + accountIdR);
if(!fieldValue && radioButton.attr("checked")){
alert('options.allrules.checkBillRoutePostalAddressConflict.alertText') // for debugging
return options.allrules.checkBillRoutePostalAddressConflict.alertText;
}
}

验证器已随类添加到我的输入文本字段class="validate[funcCall[checkBillRoutePostalAddressConflict]]"

问题是它不起作用。显示调试警报消息,这意味着条件正确。如果我用我的其他自定义验证器之一替换它,那么一切都会正常工作。

有人告诉我,如果您将自定义验证函数写入不应该为空的字段,则不会显示该消息,因为 jQuery 希望您使用 validate[required]。

如果这是真的,有人知道某种不太黑客的解决方法吗?

一种选择是直接使用 showPrompt,但也许有更干净、更好的东西?
谢谢!

最佳答案

元素的规则不仅可以是 true 或 false,还可以是一个函数。该函数可以检查电子邮件复选框是否被选中并返回 true(否则返回 false):

$('#form').validate({
'rules': {
'email_text_field': {
'required': function() { return $('#email-radio').is(':checked'); }
}
}
});

这里使用默认的required验证器。

关于javascript - jQuery 验证引擎需要阻止我的自定义所需验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12350995/

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