【问题标题】:How I can get id form when I press the submit button? [duplicate]当我按下提交按钮时如何获取 id 表单? [复制]
【发布时间】:2018-09-24 19:52:16
【问题描述】:

当我按下提交按钮时,我需要找出表单 ID 并通过 ajax 使用 post 方法传递输入值。我可以将form 放在tr 标签内吗?我该怎么做?

这是我的代码:

$("button").click(function(e) {

e.preventDefault();
alert("hello");
 var formid = $(this).closest("form[id]").attr('id');;

alert(formid) });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
     <form id='idForm'>
          <td><input type='input' value='12345' name='data1'></td>
          <td><input type='input' value='12345' name='data2'></td>
          <td><button type='submit' form='idForm'>Send</button></td>
     </form>
  </tr>
</table>

但是当我尝试检查Alert() 中的结果时,它显示未定义。

【问题讨论】:

  • 你也应该添加你的html代码。 :)
  • 你把 jQuery 放在页面的什么位置(在头部?在正文的末尾?)?
  • 试试var formid = $(this).parent("form").attr("id");
  • 您好,我更新了我的帖子,感谢您的帮助。
  • 使用a validator。您的 HTML 无效。你不能在那里有一个表格。浏览器正在尝试从您的错误中恢复,结果不是您所期望的。 i.imgur.com/Cq38lhI.png

标签: javascript html


【解决方案1】:

首先,您必须为要操作的标签赋予id 或class 属性。 最好这样写你的html,你可以用jQuery得到你想要的标签值

$("button").click(function(e) {
  var input1 = $('#input1').val();
  var input2 = $('#input2').val();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<tr>
     <form id='idForm'>
          <td><input id="input1" type='input' value='12345' name='data1'></td>
          <td><input id="input2" type='input' value='12345' name='data2'></td>
          <td><button type='submit' form='idForm'>Send</button></td>
     </form>
</tr>

【讨论】:

    【解决方案2】:

    &lt;button&gt; 元素将有一个属性指向它所包含的表单,因此您应该能够简单地更改获取表单 ID 的方式来解决问题。

    尝试更改此行...

    var formid = $(this).closest("form[id]").attr('id');
    

    对于这样的事情......

    var formid = this.form.id;
    

    或者更多的 jQuery 方式...

    var formid = $(this.form).attr('id');
    

    是的,您可以将&lt;form&gt; 元素放在&lt;tr&gt; 元素中,但是,您还需要在&lt;tr&gt; 中包含&lt;td&gt;,而不是在表单中包含&lt;td&gt;。

    正确的形式看起来更像这样......

    <table>
        <tr>
            <td>
                <form id="idForm">
                    <input id="input1" type="input" value="12345" name="data1">
                    <input id="input2" type="input" value="12345" name="data2">
                    <button type="submit" form="idForm">Send</button>
                </form>
            </td>
        </tr>
    </table>
    

    或者这个,可能更接近你的目标......

    <form id="idForm">
        <table>
            <tr>
                <td><input id="input1" type="input" value="12345" name="data1"></td>
                <td><input id="input2" type="input" value="12345" name="data2"></td>
                <td><button type="submit" form="idForm">Send</button></td>
            </tr>
        </table>
    </form>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-15
      • 1970-01-01
      相关资源
      最近更新 更多