如果未选中提交表单,则复选框将验证为“打开”

时间:2011-11-22 21:15:09

标签: javascript jquery

我在此处有一个表单:http://www.problemio.com/test.php当您点击“Click To Test Signup”时

如果你只提交表格而不填写表格,那么JS验证会意识到所有字段都是空的,除了底部的复选框。它表示即使取消选中该复选框也会打开。

知道为什么会这样吗?验证复选框的正确方法是什么?

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

并且此行将其输出为:on“alert(”Data string“+ dataString);

谢谢!

5 个答案:

答案 0 :(得分:3)

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

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

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

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

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

答案 1 :(得分:3)

使用它来获得正确的值。

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

答案 2 :(得分:2)

尝试 -

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

应该返回一个布尔值,具体取决于是否选中了复选框。

答案 3 :(得分:1)

你可以试试这个:

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

您要么获得val()undefined

答案 4 :(得分:0)

从此处更改此行:

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

到此:

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