代码之家  ›  专栏  ›  技术社区  ›  Simsons

传递事件数据时未触发jquery表单提交

  •  2
  • Simsons  · 技术社区  · 6 年前

    我正试图提交一个按钮点击事件数据的形式。我有以下jquery代码来触发事件。但它不会被触发。

    $(function() {
    
      $('#button1,#button2').on('click', function(e) {
        //e.preventDefault();
        $('form#form1').submit({
          "url": "url"
        }, doSomethint);
      });
    
      function doSomethint(e) {
        var url = ev.data.url;
        alert(url);
      }
    
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <button type="submit" id="button1">Button1</button>
    <button type="submit" id="button2">Button2</button>
    
    <form id="form1">
      <input type="text" value="123">
    </form>

    https://jsfiddle.net/1bdesjof/

    2 回复  |  直到 6 年前
        1
  •  2
  •   Miller Cy Chan    6 年前

    因为提交按钮不在表单标签中,并且变量ev未定义。

    $(function() {
    
      $('#button1,#button2').on('click', function(e) {
        //e.preventDefault();
        $('form#form1').submit({
          "url": "url"
        }, doSomethint);
      });
    
      function doSomethint(ev) {
        var url = ev.data.url;
        alert(url);
      }
    
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <form id="form1">
    <button type="submit" id="button1">Button1</button>
    <button type="submit" id="button2">Button2</button><br/>
      <input type="text" value="123">
    </form>
        2
  •  2
  •   ewwink    6 年前

    区别在于:

    $('#form1').submit()

    $('#form1').submit(eventData, handler) 向窗体添加事件

    form submit $('#form1').submit() 在添加如下事件之后。

    $(function() {
    
      $('#button1,#button2').on('click', function(e) {
        //e.preventDefault();
        $('#form1').submit({
          "url": "url"
        }, doSomethint);
        // call it
        $('#form1').submit()
      });
    
      function doSomethint(ev) {
        var url = ev.data.url;
        alert(url);
      }
    
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <button type="submit" id="button1">Button1</button>
    <button type="submit" id="button2">Button2</button>
    
    <form id="form1">
      <input type="text" value="123">
    </form>