我有jquery來驗證出席,但它目前不工作。我有2個名爲attendance1和attendance2的出席電臺組,名爲list。jquery驗證2個電臺
$("input[name=attendance1]:checked").triggerHandler('click');
$("input[name=attendance2]:checked").triggerHandler('click');
我有jquery來驗證出席,但它目前不工作。我有2個名爲attendance1和attendance2的出席電臺組,名爲list。jquery驗證2個電臺
$("input[name=attendance1]:checked").triggerHandler('click');
$("input[name=attendance2]:checked").triggerHandler('click');
如果不工作,因爲$(「input [name = attendance1]:checked」)返回一個jquery對象無關緊要。如果沒有選中,那麼它會返回一個空的jquery對象。是()方法將返回true或false:
$("#list").submit(function() {
console.log("submitted");
if ($("input[name=attendance1]").is(":checked")) {
alert('Please select attendance1');
if ($("input[name=attendance2]").is(":checked")) {
alert('Please select attendance2');
return false;
}
});
編輯:(if語句的邏輯是錯誤的)(並再次編輯,以進一步簡化)
$("#list").submit(function() {
console.log("submitted");
return 0 == $("input[name^=attendance][value=Yes]").not(":checked").each(function(){
alert('Please select ' + $(this).attr('name'));
}).length;
});
但是,如果兩個都沒有檢查,它仍然提交 – jing 2012-03-10 23:52:57
您的if語句邏輯錯誤,然後...我將編輯我的帖子來爲您解決這個問題。 – 2012-03-10 23:55:36
好吧,你走吧。請注意,現在如果兩個都沒有被選中,你會得到兩個警報,這不是用戶友好的。最好的辦法是通過將消息附加到字段標籤來替換警報。 – 2012-03-11 00:06:18
以下應該工作。
$("#list").submit(function() {
console.log("submitted");
if (!$("input[name=attendance1]").is(":checked")) {
alert('Please select attendance1');
}
if (!$("input[name=attendance2]").is(":checked")) {
alert('Please select attendance2');
return false;
}
});
如果您在代碼中修復了縮進和括號,您會看到錯誤的位置。 – c0deNinja 2012-03-11 00:02:25