Huy Guys、
私はjQuery検証プラグインを使用して、他の3つのフィールドが空白(入力されていない)の場合にのみ1つのフィールドが必要であることを指定しようとしています。
問題は、ルールは機能しているが、値を入力してもフィールドを必要とするままであるということです。
ありがとう。
これは私のコードです:
$("#ProspectDtlFrm").validate({
rules: {
prsptEmail: {
required: function(element) { return ( $("#prsptHomePhone").val() == '' && $("#prsptBusinessPhone").val() == '' && $("#prsptMobilePhone").val() =='') }
}
},
messages: {
prsptEmail: "Please enter your first name"
}
});
depends
を使用できます:
$('#ProspectDtlFrm').validate({
rules: {
prsptEmail: {
required: {
depends: function(element) {
return ($('#prsptHomePhone').val() == '' &&
$('#prsptBusinessPhone').val() == '' &&
$('#prsptMobilePhone').val() == '');
}
}
}
},
messages: {
prsptEmail: 'Please enter your first name'
}
});
depends
句は引き続きサポートされています。これは1.11.0preバージョンからです:
normalizeRules: function(rules, element) {
// handle dependency check
$.each(rules, function(prop, val) {
// ignore rule when param is explicitly false, eg. required:false
if (val === false) {
delete rules[prop];
return;
}
if (val.param || val.depends) {
var keepRule = true;
switch (typeof val.depends) {
case "string":
keepRule = !!$(val.depends, element.form).length;
break;
case "function":
keepRule = val.depends.call(element, element);
break;
}
if (keepRule) {
rules[prop] = val.param !== undefined ? val.param : true;
} else {
delete rules[prop];
}
}
});
ご覧のとおり、「文字列」と「関数」のどちらかを選択できます。だからあなたは使うことができます:
rules: {
input_name_here: {
required: {
depends: function(element) {
return $("#thickBoxId:checked").length;
//or whatever you need to check
}
}
}
}
または
rules:{
input_name_here:{
required: '#tickBoxId:checked'
}
}
チェックされたものの存在をテストする必要があるだけの場合。
'depends'はサポートされなくなったようで、ドキュメントは最新ではありません。
したがって、「はい」のチェックボックスがオンになっている場合は、別のフィールドを検証します。
rules:{
'name value of area you want to validate':{
required: '#tickBoxId:checked'
}
}
方法はdepends
です。
rules: {
prsptEmail: {
required: {
depends: function(element){
if ($('#id-user').val() == '') {
return true;
} else {
return false;
}
}
}
},
},
messages: {
prsptEmail : {
required : "please signIn!",
}
},