使用.click()调用RSV验证

时间:2013-04-23 11:08:12

标签: jquery validation

我正在使用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."
]
    });

});

2 个答案:

答案 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);
    })