我在表格中有这个表格:
<table id="fields">
<form method="post" id="accountform"></form>
<tbody><tr><td class="key">First Name:</td><td class="value">bla bla</td></tr>
<tr><td class="key">Last Name:</td><td class="value">bla bla</td></tr>
<tr><td class="key">Email:</td><td class="editable"><input type="text" class="textbox" value="blabla" name="input0"></td></tr>
<tr><td class="key">Cell Number:</td><td class="editable"><input type="text" class="textbox" value="123-456-7890" name="input1"></td></tr>
<tr><td class="key">Extension:</td><td class="editable"><input type="text" class="textbox" value="1234" name="input2"></td></tr>
<tr><td class="key">Authority Level:</td><td class="value">Admin</td></tr>
<tr><td align="right" colspan="2"><input type="submit" value="Save" id="submit"></td></tr>
</tbody></table>
的Javascript / jQuery的:
$(document).ready(function(){
$("form#accountform").submit(function() {
alert($(this).serialize());
});
});
当我提交表单时,警报显示为空白。 :| 我真的不知道为什么会这样。每个文本框都有一个名称。我之前已经将类似于此的表单(在表格内)序列化。
修改 这是'原始'HTML(在jQuery和浏览器编辑之前):
<table id="fields">
<form method="post" id="accountform" action="">
<tr><td class="key">First Name:</td><td class="value"><?php echo $_SESSION['firstname']; ?></td></tr>
<tr><td class="key">Last Name:</td><td class="value"><?php echo $_SESSION['lastname']; ?></td></tr>
<tr><td class="key">Email:</td><td class="editable"><?php echo $_SESSION['email']; ?></td></tr>
<tr><td class="key">Cell Number:</td><td class="editable"><?php echo formatPhone($_SESSION['phone']); ?></td></tr>
<tr><td class="key">Extension:</td><td class="editable"><?php echo $_SESSION['ext']; ?></td></tr>
<tr><td class="key">Authority Level:</td><td class="value"><?php echo authToName($_SESSION['auth']); ?></td></tr>
<tr><td align="right" colspan="2"><input type="submit" value="Edit" id="submit"/></td></tr>
</form>
</table>
这是用文本框替换文本的jQuery:
$("td.editable").each(function(index) {
$(this).html("<input type='text' class='textbox' value='"+$(this).html()+"' name='input"+index+"'/>");
})
答案 0 :(得分:3)
问题肯定是标记:
<table id="fields">
<form method="post" id="accountform" action=""> <!-- Form does not go in the table -->
<tr>...</tr>
...
<tr>...</tr>
</form> <!-- Form does not go in the table -->
</table>
将您的表格包裹在<form>
代码中,而不是将其放入表格中。
<form method="post" id="accountform" action="">
<table id="fields">
<tr><td class="key">First Name:</td><td class="value"><?php echo $_SESSION['firstname']; ?></td></tr>
<tr><td class="key">Last Name:</td><td class="value"><?php echo $_SESSION['lastname']; ?></td></tr>
<tr><td class="key">Email:</td><td class="editable"><?php echo $_SESSION['email']; ?></td></tr>
<tr><td class="key">Cell Number:</td><td class="editable"><?php echo formatPhone($_SESSION['phone']); ?></td></tr>
<tr><td class="key">Extension:</td><td class="editable"><?php echo $_SESSION['ext']; ?></td></tr>
<tr><td class="key">Authority Level:</td><td class="value"><?php echo authToName($_SESSION['auth']); ?></td></tr>
<tr><td align="right" colspan="2"><input type="submit" value="Edit" id="submit"/></td></tr>
</table>
</form>
工作fiddle(用纯文本值替换你的PHP代码所在的内容)。
答案 1 :(得分:2)
您的<form>
元素提前结束(请参阅结束标记旁边的结束标记?)。
请尝试使用此HTML:
<form method="post" id="accountform">
<table id="fields">
<tbody>
<tr><td class="key">First Name:</td><td class="value">bla bla</td></tr>
<tr><td class="key">Last Name:</td><td class="value">bla bla</td></tr>
<tr><td class="key">Email:</td><td class="editable"><input type="text" class="textbox" value="blabla" name="input0"></td></tr>
<tr><td class="key">Cell Number:</td><td class="editable"><input type="text" class="textbox" value="123-456-7890" name="input1"></td></tr>
<tr><td class="key">Extension:</td><td class="editable"><input type="text" class="textbox" value="1234" name="input2"></td></tr>
<tr><td class="key">Authority Level:</td><td class="value">Admin</td></tr>
<tr><td align="right" colspan="2"><input type="submit" value="Save" id="submit"></td></tr>
</tbody>
</table>
</form>