2011-11-22 58 views
0

我这里有一个表格:http://www.problemio.com/test.php当你点击“点击测试注册”复选框验证为“开”时,提交表单时选中

如果你只是提交表单没有填写出来的JS验证意识到所有的字段都是空的,除了底部的复选框。它说,即使未选中复选框也是如此。

任何想法为什么发生这种情况?那么验证复选框的正确方法是什么?

var terms_and_conditions = $("#terms_and_conditions").val(); 

和这条线将其输出为:上的”警报( “数据字符串” + dataString);

谢谢!

+0

你能在粘贴的JavaScript您使用的验证? – Chris

+0

@Chris刚刚在那里添加了一些代码。 – GeekedOut

+0

http://jsfiddle.net/azP59/ –

回答

3

用这个来代替正确的值。

$("#terms_and_conditions").is(':checked') 
3

你必须测试像这样的(使用:checked-selector):

var terms_and_conditions = $("#terms_and_conditions:checked").val(); 

,或者更好,使用.prop()

var terms_and_conditions = $("#terms_and_conditions").prop('checked'); 

这是因为复选框上的值始终是设置的 - 唯一改变的就是checked状态,所以这就是你真正需要测试的。

2

尝试 -

var terms_and_conditions = $("#terms_and_conditions").prop("checked"); 

应该返回取决于复选框是否被选中的布尔值。

1

你可以试试这个:

$("#terms_and_conditions:checked").val(); 

你要么得到val()undefined

0

改变这一行从这样的:

var terms_and_conditions = $("#terms_and_conditions").val(); 

这样:

var terms_and_conditions = $("#terms_and_conditions").is(":checked");