function getGroup(el){
return $(el).parents('.field');
}
function validateGroup(group){
var count = 0;
$(group).find("input[type!='hidden'], select").each(function(){
if( $(this).val() )
count++;
});
if($(group).find("input[type!='hidden'], select").length == count || count == 0)
return true;
else
return false;
}
$.tools.validator.fn(
$("#addressInfo .field select, #addressInfo .field input[type!='hidden']"),
"Please Complete this mandatory field",
function(el, v){
if( !testOptionalFieldsValidation(el) && ($(el).val().length == 0 ) )
return false;
else
return true;
}
);
function testOptionalFieldsValidation(el){
group = getGroup(el);
return validateGroup(group);
}
"
上記の指定されたコードは、フィールドの検証に使用されています。シナリオは、ユーザーが単一のフィールドの値を入力すると、それらすべてを入力すると想定される場合、そうでない場合はバリデーターがそれらのフィールドに入力することを指摘するようなものです。上記の指定されたコードは、これまでの要件に従って機能していましたが、オプションのループ可能な住所情報セクションも提供され、ボタンをクリックして詳細を入力できます。これにより、通り (入力タイプ) 市 (入力タイプ) 州 (タイプを選択) 国 (タイプを選択)..合計でデフォルトのフィールドは 6 ですが、[住所情報を追加] ボタンをクリックすると、6 つのフィールドだけでなく 12 のフィールドすべてが検証され、それぞれエラー メッセージが表示されます。私の知識とスキルの限りでは、それは JQUERY ツールのバグでした。