我有一个带有 2 个文本输入和 2 个单选按钮的表单。一个单选按钮是当客户希望所有未来的通信都通过纸质邮件进行时,另一个按钮是当客户希望通过电子邮件进行通信时。
当用户选择电子邮件时,用户需要用他的电子邮件地址填写其中一个输入文本框。当用户选择邮政时,他必须在另一个框中填写邮政地址。
为此,我有一个自定义的 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
直接使用,但也许有更清洁更好的东西?
谢谢!