2013-07-14 81 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