当我按下提交按钮时,我需要找出表单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>
&#13;
但是当我尝试检查Alert()
内的结果时,它显示未定义。
答案 0 :(得分: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>
答案 1 :(得分:0)
<button>
元素将具有指向其中包含的表单的属性,因此您应该能够简单地更改获取表单ID以解决问题的方式。
尝试更改此行......
var formid = $(this).closest("form[id]").attr('id');
这样的事情......
var formid = this.form.id;
或者更简洁的jQuery方式......
var formid = $(this.form).attr('id');
而且,是的,您可以将<form>
元素放在<tr>
元素中,但是,您需要在<td>
中添加<tr>
,而不是表格中的<td>
。
正确的形式看起来更像......
<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>