2013-07-14 80 views
0

這是我的html代碼:如何檢查單選按鈕使用JavaScript

<input type="radio" name="sex" id="boy" value="male" /> Boy<p></p><br> 
<input type="radio" name="sex" id="girl" value="female" />Girl 
<button id="fine" type="button">Submit</button> 

,這是在我的JavaScript文件:

var maskio = document.getElementById('boy'); 
    var femmna = document.getElementById('girl'); 
    function prima(){ 
    var fine = document.getElementById('fine'); 
    fine.onclick=chek; 
    } 
    function chek(){ 
    if((maskio.checked == false) && (femmna.checked == false)) { 
    alert('lol'); 
    return false; 
    } 
    } 
window.onload=prima; 

問題出在哪裏?當我運行它並單擊提交沒有任何反應。爲什麼?

+0

_「......沒有任何反應。」 _ - 什麼都沒有?所以你沒有得到類似'Uncaught TypeError的錯誤:無法在瀏覽器的控制檯中讀取'null'屬性'檢查'?我認爲你的JS文件包含在文檔的''部分? – nnnnnn

+0

你可以簡單地解決這個問題是這樣的:http://jsfiddle.net/TQ3Xt/1/ – Stano

回答

1

改變你的JS如下。這些元素不是在你獲得它們的時候創建的。

function prima() { 
    var fine = document.getElementById('fine'); 
    fine.onclick = chek; 
} 

function chek() { 
    var maskio = document.getElementById('boy'); 
    var femmna = document.getElementById('girl'); 
    if ((maskio.checked == false) && (femmna.checked == false)) { 
     alert('lol'); 
     return false; 
    } 
} 

window.onload=prima; 

入住這裏:jsFiddle

+0

+1的小提琴 –

-1

當單選按鈕具有相同的名稱,它們都屬於該組的名稱。這意味着,只能選擇一個組中的一個無線電按鈕。如果您同時選中,無論如何都不會有結果!

+0

但在這種情況下,既沒有被檢查下手,這樣的驗證是爲了確保一個或另一個會得到檢查。 – nnnnnn

0

的問題是你的HTML標籤,有一個空格「<」刪除空間,它會正常工作......

<input type="radio" name="sex" id="boy" value="male" /> Boy 
<p></p><br> 
<input type="radio" name="sex" id="girl" value="female" /> Girl 
<button id="fine" type="button">Submit</button> 
<script> 

var maskio = document.getElementById('boy'); 
var femmna = document.getElementById('girl'); 
function prima() 
{ 
    var fine = document.getElementById('fine'); 
    fine.onclick=chek; 
} 
function chek() 
{ 
    if(maskio.checked) 
    { 
     alert("You are male Eh?"); 
    } 
    else if(femmna.checked) 
    { 
     alert("Femal ;)"); 
    } 
    else if(!maskio.checked && !femmna.checked) 
    { 
     alert("Come on Please check something!"); 
    } 
} 
    window.onload=prima; 

</script> 
+0

_有一個空格「<」_ - 你是什麼意思?什麼空間?我相當肯定這不是問題(因爲在另一個答案中提到JS存在另一個問題)。 – nnnnnn