【问题标题】:Defining when onclick is fired定义 onclick 何时触发
【发布时间】:2016-08-08 13:38:37
【问题描述】:

我遇到了一些小问题。我有一个表单,我在系统中映射表单的字段。表单的按钮会自动获得类似这样的 onclick 事件

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

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

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

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

谢谢

【问题讨论】:

    标签: jquery forms validation jquery-validate


    【解决方案1】:

    为您的问题提供程序性答案,

    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

    【讨论】:

      【解决方案2】:

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

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

      $("form").validate({
      
        submitHandler: function(form) {
      
        }
      
      });
      

      【讨论】:

        【解决方案3】:
        $("#btn-default2").click(function(){
            $(this).off("click");
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多