定义何时触发onclick

时间:2016-04-16 16:07:36

标签: jquery forms validation jquery-validate

我遇到了一些问题。我有一个表单,我在系统中映射表单的字段。表格的按钮会自动发出像这样的onclick事件

window.location='http://www.something.com/test.html?vs=ZWJhMDAzMzktMTNkYi00ODRkLTgxYmQtNjQwYTU5MDIyZWE3OzA6ODc5NjY2NzoxMjg2NzUyNDM3NDI6OTAxNzM0MzA1OjkwMTczNDMwNTsS1'

它添加了一个需要的vs变量。问题是我需要表单有一个输入类型按钮,而不是提交。我正在使用JQuery验证,我有这个来触发表单提交

$("#btn-default2").click(function() {
        $("#myform").submit();
    });

现在问题是,由于onclick事件,验证会快速触发,然后onclick事件会重定向。如果表单有效,我只想要这个重定向。有没有办法停止事件onclick,并将其移动到我的函数中,我检查表单是否有效?

由于

3 个答案:

答案 0 :(得分:0)

针对您的问题的程序性答案,

var btn = $("button.validate");
var x = btn.attr("onclick"); //get the onclick and store it in a variable.
btn.attr("onclick", ""); //remove the onclick attribute for that button
btn.click(function() {
    //Now do validations for your button.
    if ($("input[type='text']").val() == "10") { 
        eval(x); //If the form fields passed the validation
        //then trigger the redirect using eval
    }
});

DEMO

答案 1 :(得分:0)

如果你想利用jquery验证插件,那么你应该尝试使用提交处理程序。

submitHandler是插件中内置的回调函数。当表单有效时,回调处理实际提交。获取表单作为唯一参数。替换默认提交。

$("form").validate({

  submitHandler: function(form) {

  }

});

答案 2 :(得分:-1)

$("#btn-default2").click(function(){
    $(this).off("click");
});
相关问题