这有点怪异,但是这次我遇到了一些在IE上有效的东西,而不是在其他浏览器(如firefox和chrome)上起作用的东西。
这是问题所在:
我正在使用jquery.load()
方法将包含表单的页面的一部分动态加载到我的现有页面中。
我已经使用.on方法为新添加的元素附加事件处理程序。
但是,当我单击“提交”按钮时,表单的提交方法可以正常工作,但是它不会在后查询中发送任何数据(顺便说一句,我已经指定了form method=POST"
)
主要问题是,在我启动该.load()
方法以获取新元素并替换现有元素之前,请先完成.submit()
FINE。发送后数据。
但是在更换dom之后,POST中没有数据。
jQuery代码:
$(document).on("click", ".s_edit",function()
{$(this).parents('tr').children('form').submit();});
.s_edit
是表单提交按钮:
PHP / HTML代码(CodeIgniter):
<tr>
<form method="post" action="<?php echo base_url();?>index.php/userlist/inline_edit/<?php echo $r['id'];?>">
<td><input class="record_edit" type="text" name="name" id="name<?php echo $r['id'] ?>"/></td>
<td><input class="record_edit" type="text" name="age" id="age<?php echo $r['id']; ?>"/></td>
<td>
<span class="record_edit">
<input id="gen_m<?php echo $r['id']; ?>" type="radio" name="gender" value="m"/>Male<br/>
<input id="gen_f<?php echo $r['id']; ?>" type="radio" name="gender" value="f"/>Female
</span>
</td>
<td><input class="record_edit datepick" type="text" name="joining_date" id="joining_date<?php echo $r['id']; ?>"/></td>
<td>
<div class="record_edit">
<input type="submit" value="save" class="s_edit"/>
<input type="button" class="cancel_edit" value="Cancel"/>
</div>
</td>
</form>
</tr>
由于具有<tr><form><td>
,其他浏览器正在剥离表单元素,或将其重新排列在DOM树中。
IE在Firefox中,
<table>
<tr>
<form>
<td>a</td>
</form>
</tr>
</table>
去
<table>
<tbody><tr>
<form></form>
<td>a</td>
</tr>
</tbody></table>
因此,您的表单不再将元素包装在td中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句