我有两个单选按钮和一个文本输入。我想要验证文本输入所需的 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/