我正在使用Benjamin Keen的RSV(真正简单的验证),但是我构建我的网站的方式我在页面底部有javascript,这导致我在验证表单上的可怕内联js出错..
目前该表格有:
onSubmit="return RSV(this, rules);
我想把它改成这样的东西:
registerForm.click(function(e){
e.preventDefault();
//alert("fired!");
return RSV($(this), rules);
});
然而,控制台报告未捕获 ReferenceError:未定义规则
我宁愿不使用内联javascript,有没有人遇到过这个或理解得足以帮助 - 任何帮助都会非常感激。
Link to examples of the validation code on Benjamin's website
这是使插件工作所需的其余代码的示例。
$(document).ready(function() {
$("#demo_form5").RSV({
onCompleteHandler: myOnComplete,
errorFieldClass: "errorFieldDemo5",
displayType: "display-html",
errorHTMLItemBullet: "— ",
rules: [
"required,first_name,Please enter your first name.",
"required,last_name,Please enter your last name.",
"required,email,Please enter your email address.",
"valid_email,email,Please enter a valid email address.",
"required,any_integer,Please enter your age.",
"digits_only,any_integer,The age field may only contain digits.",
"required,marital_status,Please enter your marital status."
]
});
});
答案 0 :(得分:1)
使用“防止”默认值并不像这里那样正常工作。它可能在某些浏览器中起作用,它也可能会阻止表单完全提交,所以我会省略它。 e.preventDefault();
以下内容确实有效......
$('#btnSubmit').submit(function(){
return RSV(this, rules);
});
...表单中的按钮需要是一个输入字段,类型为submit,匹配的id为:
<input type="submit" id="btnSubmit" >
我发现一些较旧的浏览器版本,咳嗽IE 8,偶尔会允许表单提交两次,在db中给你两个新记录。为确保不会发生这种情况,请将myOnComplete更改为:
function myOnComplete(){
$(this).find("input[type='image'],input[type='submit']").click(function(){
return false;
});
}
答案 1 :(得分:0)
我找到了解决方案:
我的目标是表单而不是提交按钮,还使用.click(),我应该使用.submit()。
正确的代码如下:
$('#btnSubmit').submit(function(e){
e.preventDefault();
return RSV(this, rules);
})