2012-04-15 67 views
1

有两种选择;英文或非英文。当你不选择他们中的任何一个或者同时选择它们时,它应该给出错误,但它不会给出。你能帮忙吗?谢谢。 ps:尽管我为条款和条件制作了一个复选框,但警报不起作用。复选框javascript

的JavaScript

function onFormSubmit(form_element) { 

     if (form_element.click.checked == false) 
       { 
       alert("Please check language"); 
       return false; 
       } 
    return true; 
} 

HTML 

<form onsubmit="return onFormSubmit(this)"> 
     Language: <input type="checkbox" name="click" value="english">english 
</form> 
+4

你有没有考虑使用无线输入呢?这种方式只能选择一种,浏览器默认默认检查一种。 – 2012-04-15 14:05:37

+0

是的,我知道这很容易,但它应该是复选框。 :( – user1332075 2012-04-15 14:08:54

+2

“假设是”为什么?对于这种使用情况,它真的应该*是无线电输入 – 2012-04-15 14:41:41

回答

1

条件应该是...

if ((form_element.click_1.checked == true && form_element.click_2.checked == true) || (form_element.click_1.checked == false && form_element.click_2.checked == false)) 

编辑

这是我用过的东西。

<script> 
function onFormSubmit(form_element) { 

     if ((form_element.click_1.checked == true && form_element.click_2.checked == true) || (form_element.click_1.checked == false && form_element.click_2.checked == false)) 
       { 
       alert("Please check language"); 
       return false; 
       } 
    return true; 
} 
</script> 


<form onsubmit="return onFormSubmit(this)"> 
     Language: <input type="checkbox" name="click_1" value="english">english 
        <input type="checkbox" name="click_2" value="non english">non english</p> 
<input type="submit"> 
</form> 
+0

它并没有解决问题。当我选择两个或全都没有,它仍然不会给出任何错误。 – user1332075 2012-04-15 14:14:31

+0

什么你的意思是错误吗?你的提示信息是否正确? – 2012-04-15 14:16:06

+0

是的。提醒信息。 – user1332075 2012-04-15 14:16:46

0

问题是“onFormSubmit(this)” - 'this'在调用事件时不会引用表单。如果你从文档中查找表单,它会正常工作。

<!doctype html> 
<html> 
<head> 
<script type="text/javascript"> 
function validateForm() { 
     var form = document.getElementById("myForm"); 
     if (!form.language.checked) { 
       alert("Please check language"); 
       return false; 
     } 
     return true; 
} 
</script> 
</head> 
<body> 
<form id="myForm" onsubmit="return validateForm()"> 
     Language: <input type="checkbox" name="language">English</input><br /> 
     <input type="submit" /> 
</form> 
</body> 
</html> 
+1

您确定要复选框吗?单选按钮会更好,因为一次只能选择一个按钮。 – 2012-04-15 14:22:36

+0

我改变了它作为条件的条款,我需要复选框 – user1332075 2012-04-15 14:32:42

+0

你的功能不起作用的原因是因为你说错了。如果你不能改变功能,改变形式:

... ... – 2012-04-15 14:36:19

0
<form onsubmit="return onFormSubmit(this)"> 
     Language: <input type="checkbox" name="click_1" value="english">english 
        <input type="checkbox" name="click_2" value="non english">non english</p> 
     <input type="submit" /> 
</form> 
<script type="text/javascript"> 
function onFormSubmit(form_element) { 
    if ((form_element.click_1.checked == true && form_element.click_2.checked == true)) { 
     alert("Please check only one choice!"); 
     return false; 
    } else if ((form_element.click_1.checked == false && form_element.click_2.checked == false)) { 
     alert("Please check your choice!"); 
     return false; 
    } 
    return true; 
} 
</script> 
​ 

http://jsfiddle.net/ocanal/3AWUp/

0

我添加了一个提交按钮,您的HTML和IDS每个元素

HTML

<form id="myForm"> 
     Language: <input id="english" type="checkbox" name="click_1" value="english">english 
        <input id="nonEnglish" type="checkbox" name="click_2" value="non english">non english</p> 
<button type="submit">Submit</button> 
</form> 

我附加功能的onsubmit事件的执行上验证。 的Javascript

document.getElementById("myForm").onsubmit = 
function() { 
     if ((document.getElementById("english").checked == false && document.getElementById("nonEnglish").checked == false) || (document.getElementById("english").checked == true && document.getElementById("nonEnglish").checked == true)) 
       { 
       alert("Please check language"); 
       return false; 
       } 
    return true; 
} 

演示:http://jsfiddle.net/j3J4E/

+0

谢谢,但我必须使用原来的功能。 – user1332075 2012-04-15 14:31:22