我有以下复选框:
<input type="checkbox" id="startClientFromWeb" name="startClientFromWeb" data-bind="checked: StartClientFromWeb" />
和以下输入文本字段:
<input id="mimeType" name="mimeType" data-bind= "value: MimeType" />
这是我的js验证码:
$("#franchiseForm").validate({
rules: {
mimeType: {
required: $("#startClientFromWeb").is(":checked")
}
}
});
我希望仅在选中复选框时才需要mimeType输入文本字段。出于某种原因,上述情况无效。我是javascript和jquery的新手。任何有关工作示例的帮助将不胜感激。谢谢!
答案 0 :(得分:10)
您可以添加自己的自定义验证方法来处理这样的事情:
$.validator.addMethod("requiredIfChecked", function (val, ele, arg) {
if ($("#startClientFromWeb").is(":checked") && ($.trim(val) == '')) { return false; }
return true;
}, "This field is required if startClientFromWeb is checked...");
$("#franchiseForm").validate({
rules: {
mimeType: { requiredIfChecked: true }
}
});
答案 1 :(得分:2)
如果输入为disabled
,则不会触发验证。你可以使用这个事实 - 让textbox成为必需,但最初是禁用的,只有在选中复选框时才启用它。
$(function () {
$('#startClientFromWeb').change(function () {
if ($(this).is(':checked')) {
$('#mimeType').removeAttr('disabled');
}
else {
$('#mimeType').attr('disabled', 'disabled');
}
});
});
答案 2 :(得分:0)
最简单的工作方式:
rules : {mimeType:{required:"#startClientFromWeb:checked"}}, messages: {mimeType: {required: 'Repeat checked, To date required'}}