重新选择单选按钮选择的输入

时间:2015-01-14 14:52:44

标签: jquery radio-button jquery-validate

我目前有一个表格,我使用jquery验证。该表单包含许多单选按钮(“是”,“否”),并且每个对应的是/否单选按钮组具有在用户选择“是”时所需的描述文本框。像这样: enter image description here

以下是执行验证的方法:

$.validator.addMethod('conditionalrequired', function (value, element, params) {
    var input = $(params);
    var checked = input.prop('checked');
    if (checked) {
        return value != '' && value != "0";
    }
    return true;
});

$.validator.unobtrusive.adapters.add("conditionalrequired", ["boolpropertyname"], function (options) {
options.rules["conditionalrequired"] = "#" + options.params.boolpropertyname + 'Yes';

options.messages["conditionalrequired"] = options.message;

});

验证效果很好。我唯一的问题是当触发验证并显示错误消息时,选择“否”选项不会删除错误消息(但它不会阻止提交表单)。我需要做些什么来获得我正在寻找的效果?

2 个答案:

答案 0 :(得分:3)

change输入的radio事件中,您可以调用the .valid() method来触发验证测试,该测试会根据需要切换相关的错误消息。

  • 更改任何radio输入时触发。仅重新评估要更改的radio

    $('#myform input[type="radio"]').on('change', function() {
        $(this).valid();  // <- re-validate this one radio input
    });
    
  • 更改任何radio输入时触发。一次重新评估所有radio输入。

    $('#myform input[type="radio"]').on('change', function() {
        $('#myform input[type="radio"]').valid();  // <- re-validate every radio input
    });
    
  • 更改任何radio输入时触发。立即重新评估整个表格。

    $('#myform input[type="radio"]').on('change', function() {
        $('#myform').valid();  // <- re-validate this entire form
    });
    

答案 1 :(得分:0)

为了记录,这里是我为实现我所寻找的目标所做的 - 在&#34; No&#34;单选按钮点击事件,我打电话:

 var validator = $("form").validate();
 validator.element("#textboxName");

这将验证输入并删除验证消息。我在文档here中找到了此解决方案。