我在此处有一个表单:http://www.problemio.com/test.php当您点击“Click To Test Signup”时
如果你只提交表格而不填写表格,那么JS验证会意识到所有字段都是空的,除了底部的复选框。它表示即使取消选中该复选框也会打开。
知道为什么会这样吗?验证复选框的正确方法是什么?
var terms_and_conditions = $("#terms_and_conditions").val();
并且此行将其输出为:on“alert(”Data string“+ dataString);
谢谢!
答案 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");