2010-10-14 151 views
4

我正在使用下面的jQuery代碼來驗證表單。現在這一切都很好,但我希望複選框驗證使用.validator而不是當前的alert,但是當我將required="required"添加到複選框的輸入框時,我會收到所有複選框的消息,而我只需要一個。jQuery複選框驗證

$("#request-form").validator({ 
    message: '<div><em/></div>', 
    position: 'top left', 
    offset: [3, 40] 
}); 

$("#see").overlay({mask: '#999', fixed: false}).bind("onBeforeClose", function(e) { 
    $(".error").hide(); 
}); 

$('#request-form').submit(function(){ 
    if(!$('#request-form input[type="checkbox"]').is(':checked')){ 
     alert("Please check at least one."); 
     return false; 
    } 
}); 

希望這是有道理的。提前致謝。 S

+0

這是一個有點脫離主題,但不要忘了,在服務器端,你仍然* *必須測試整個的結果,因爲它可能沒有被過濾,你還是您的請求中可能會收到不可預知的內容(即黑客發送的請求)。 – 2010-10-14 12:03:25

+0

我對jQuery和selectorsm比較陌生,但沒有辦法爲特定的複選框定義更具體的jQuery選擇器,而不是表單中的所有複選框?希望我不會把你推向錯誤的軌道。 – 2010-10-14 12:11:50

+0

你使用了什麼插件?它不是[標準驗證插件](http://docs.jquery.com/Plugins/validation)... – lonesomeday 2010-10-14 12:17:35

回答

5

以下是一些可與JQuery Validation Plugin一起使用的代碼。我不確定這是否會與您使用的功能一起工作,因爲我從來沒有聽說過它。

$("#request-form").validate({ 
    rules: { 
     checkbox: { 
     required: 'input[type="checkbox"]:checked', 
     minlength: $('input[type="checkbox"]').length() 
     } 
    }, 
    messages: { 
     checkbox: "Please check at least one.", 
    } 
}); 

HTH