javascript - JQuery 验证 - 文本输入所需的单选按钮

标签 javascript jquery html forms jquery-validate

我有两个单选按钮和一个文本输入。我想要验证文本输入所需的 radio 之一。除非选择,否则我可以禁用文本输入字段,但我认为首先允许文本输入会更直观,并且只有在他们不选择 radio 时才会出错。

表单返回一个错误,指出需要 radio ,但我不希望远程检查启动,除非选择了其中一个单选按钮。

这就是我所拥有的......
JQuery:

jQuery( "#modalform" ).validate({
    onkeyup: false,
    onfocusout: false,
    rules: {
        'register_domain[]': {
            required: true             
        },
        chosen_domain: {
            required: true,
            minlength: 4,
            remote: {
                url: "check.php",
                type: "post",
                data: {
                    register_domain: function() {
                        return jQuery('input[name="register_domain[]"]');
                    }
                }
            }
        }
        },
    messages: {
        'register_domain[]': {
            required: "Choose one"
        },
        chosen_domain: {
            required: "Required input",
            minlength: jQuery.validator.format("Please, at least {0} characters are necessary"),
            remote: jQuery.validator.format("Invalid domain name: {0}")
        }
    }
});

表单字段:

<label class="radio-inline">
    <input type="radio" name="register_domain[]" id="own_domain" value="owned"> Own Domain
</label>
<label class="radio-inline">
    <input type="radio" name="register_domain[]" id="new_domain" value="new"> Register Domain
</label>
<label for="register_domain[]" class="error" style="display:none;">Please choose one.</label>
<input type="text" size="50" placeholder="www." id="inputDomain" name="chosen_domain" class="form-control required" required="required">

最佳答案

引用OP:

"I don't want the remote check to kick in unless one of the radio buttons is selected."

您可以使用the rules('add') and rules('remove') methods在外部change处理程序中切换remote规则...

$('input[name="register_domain[]"]').on('change', function() {
    if ($(this).val() == "owned") {
        $('input[name="chosen_domain"]').rules('remove', 'remote');
    } else {
        $('input[name="chosen_domain"]').rules('add', {
            remote: {
                url: "check.php",
                type: "post",
                data: {
                    register_domain: function() {
                        return jQuery('input[name="register_domain[]"]');
                    }
                }
            }
        });
    }
});

关于javascript - JQuery 验证 - 文本输入所需的单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26707369/

相关文章:

javascript - 如何切换外部 CSS 文件?

javascript - jQuery 在 optgroup 前面添加标签

javascript - 文件加载到浏览器后去掉href的路径

jquery - 如果删除输入文本,则插入默认值

javascript - 如何根据子元素的data-*属性获取<tr>?

javascript - 与 jsx 中的 split 相反

javascript - 如何始终滚动到底部?

javascript - Angular 6 中的表单重置

Jquery $ ('.article.active' ).next Issue

css - <div> 元素上的位置不正确