我已经尝试过这个并且似乎没有到达任何地方,所以我想我会把它放在那里。我有一个由用户提供的数据表格,我到目前为止能够在没有问题的情况下使用js / jQuery进行验证,然后再将其发送到php进行进一步处理。我这样做是这样的:
form.submit(function(){
if(validateUserName() & validateEmail1() & validateEmail2() & validatePass1() & validatePass2() & acceptTerms()){
return true;
} else {
return false;
}
});
表单本身使用以下属性:
<form id="signup" action="registration.php" method="post">
问题函数是acceptTerms()
,它只需检查选中的复选框似乎不应该正常工作(或者与其他验证函数一样)。
var termscons = $('input:checkbox[name=termscons]');
termscons.change(acceptTerms);
function acceptTerms(){
if($(termscons).is(':checked')) {
termsconsInfo.text("");
return true;
} else {
termsconsInfo.text("In order to join, you must accept these terms and conditions.");
return false;
}
}
我已经集成了termscons.change
侦听器和termsconsInfo.text("");
以确保我的选择器指向正确的东西,并且正确地触发了该函数(通过更改{{ 1}}当状态发生变化时)。当我尝试提交表单时,它似乎返回false,因为它不提交。它实际上应该返回true,并将我的表单发布到我的php脚本。
我是以正确的方式来做这件事的吗?在处理复选框而不是文本输入时,是否有一些我一直缺少的东西?
请原谅我的无知,这对我来说还是很新鲜的。
答案 0 :(得分:0)
第一个问题是您在if语句中使用&
。它必须是&&
。
第二个问题是acceptTerms
(正如您猜测的那样):
var termscons = $('input:checkbox[name=termscons]');
termscons.change(acceptTerms);
function acceptTerms(){
if(termscons.is(':checked')) { // <-- termscons is already a jQuery object
termsconsInfo.text("");
return true;
} else {
termsconsInfo.text("In order to join, you must accept these terms and conditions.");
return false;
}
}
可能会有更多,但这就是我现在所看到的。
答案 1 :(得分:0)
我说忘记重新发明轮子并使用已经测试过的东西,例如jQuery validate