2012-03-10 61 views
0

我有jquery來驗證出席,但它目前不工作。我有2個名爲attendance1和attendance2的出席電臺組,名爲list。jquery驗證2個電臺

$("input[name=attendance1]:checked").triggerHandler('click'); 
    $("input[name=attendance2]:checked").triggerHandler('click'); 
+0

如果您在代碼中修復了縮進和括號,您會看到錯誤的位置。 – c0deNinja 2012-03-11 00:02:25

回答

1

如果不工作,因爲$(「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; 
});​ 
+0

但是,如果兩個都沒有檢查,它仍然提交 – jing 2012-03-10 23:52:57

+0

您的if語句邏輯錯誤,然後...我將編輯我的帖子來爲您解決這個問題。 – 2012-03-10 23:55:36

+0

好吧,你走吧。請注意,現在如果兩個都沒有被選中,你會得到兩個警報,這不是用戶友好的。最好的辦法是通過將消息附加到字段標籤來替換警報。 – 2012-03-11 00:06:18

0

以下應該工作。

$("#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; 
    } 
});