美好的一天。
我有一个表单,用户必须填写一些字段,这个表单是用PHP脚本创建的。
我已经完成了一个脚本,对输入字段进行测试,以检查用户是否填写了所有内容。 它基本上是级联测试,如果错误变量为真,则表单未提交。
我做了一些修改,并在表单中添加了一个新的隐藏字段,当用户点击图片时由jquery填充。
$( '.selectLogo' ).bind("click",function(e){
$( "#operator" ).val( $(this).data("opvalue") );
});
然后,在提交事件中,有整个测试......
if ( !$( "#operator" ).val().length ){
$(".operatorError").show();
error=true;
} else{
$(".operatorError").hide();
}
if(error){
return false;
}
这是我在测试错误变量之前在函数上添加的最后一个测试,并决定是返回true
还是false
。
如果我正在调试脚本,即我在if(error)
上方设置断点,一切都很好。
如果我填写了整个表格,即checkForm函数只是进行每次测试并得出返回true或false的决定,一切正常。
但是如果我部分填写表单,并且我尝试在不选择运算符的情况下进行提交(我添加了新字段),checkForm函数会阻止我,显示错误,但此时,我必须单击操作员徽标才能使hiden字段填充,然后我必须单击SEVERAL(读取2,3或有时4)次提交按钮以提交表单。
听起来error
变量保留了值,而jQuery缓存它......或者其他什么,是否有人遇到过类似的问题?有可能"强迫" jQuery to"真的"测试变量......?我完全错了,也许问题出在其他地方了?