2010-12-21 187 views
0

對於電臺按鈕:如何驗證單選按鈕和複選框?

$(document).ready(function() { 
     $('#select-number').click(function() { 
       if ($('input:radio', this).is(':checked')) { 
        return true; 
       } else { 
        alert('Please select something!'); 
        return false; 
      } 
     }); 

    }); 

沒有選擇單選按鈕時它工作正常。但是,當我選擇單選按鈕並提交表單然後它也給我提示消息'Please select something!'是否有任何好的教程可用於使用Jquerynewbie進行驗證。

+0

你可以張貼在jsfiddle.net的完整HTML? – Chandu 2010-12-21 14:44:56

+0

什麼類型的元素是#select-number? – 2010-12-21 14:46:12

回答

1

看起來您正在附加submit按鈕的click事件(內部沒有輸入元素)。相反,重視submit事件的形式爲:

$(document).ready(function() { 
    $('#formID').submit(function() { 
     if ($('input:radio', this).is(':checked')) { 
      return true; 
     } else { 
      alert('Please select something!'); 
      return false; 
     } 
    }); 
}); 

這有醒目所有<form>可提交的方式,以及會在正確的位置input:radio按鈕的優勢。您也可以縮短/進一步簡化了下去:

$(function() { 
    $('#formID').submit(function() { 
    if ($(this).find('input:radio:checked').length == 0) { 
     alert('Please select something!'); 
     return false; 
    } 
    }); 
}); 
+0

當我將它與表單連接時,它不起作用。 – xasjaiod123 2010-12-21 14:48:53

0

jQuery的validation插件是相當不錯的,易於上手。如果您是jQuery的新手,那麼您最好嘗試一下插件並專注於其他基礎知識。你會發現一些驗證,但這可以讓你很快地驗證(客戶端)像專業人士。

1

我想這是因爲你,如果一個無線電檢查,而檢查是否所有被檢查沒有看到

if ($(this).find("input:radio:checked").length > 0) { 
    return true; 
} 
else { 
    alert('Please select something!'); 
    return false; 
} 
0

我想這是因爲通過「這個」作爲第二個參數$的( 'input:radio')函數,因爲將這個傳遞給調用使得jQuery能夠在這個上下文中進行搜索(我認爲這是提交按鈕)。 嘗試......

$(document).ready 
(
    function() 
    {   
    $('#select-number').click 
    (
    function() 
    {     
    if ($('input:radio').is(':checked')) 
    {      
     return true;     
    } 
    else 
    {      
     alert('Please select something!');      
     return false;    
    }   
    } 
    );  
    } 
);