【发布时间】:2011-02-07 23:38:02
【问题描述】:
我正在处理一个从数据库动态生成的简单表单,我想出了这个简单的表单只是为了尝试它,但显然工作正常,但是在第二次提交同一个表单后有点保留旧的值o.O
<script src="jquery-1.4.4.js" type="text/javascript"></script>
<script type="text/javascript">
function init(items,userId) {
var inputdata = $("#qty_"+items).val();
var userId = userId;
alert(inputdata);
$("#form_"+items).live("submit", function() {
$.post("test_query.php", { value:inputdata, userId:userId },
function(data){
$('#results').empty();
alert(data);
});
return false;
});
};
</script>
<?php
for($i=1; $i <2; $i ++)
{
echo "
<div>
<form id='form_".$i."'>
<input id='qty_".$i."' type='text' autocomplete='OFF' />
<input type=\"submit\" value=\"submit\" onclick=\"init(".$i.",2)\"/>
</form>
<script>
</script>
</div>
";
}
?>
</div>
更新:忘记提到提交时不刷新页面的想法。并且表单名称/id 是动态生成的。
【问题讨论】:
-
您是否在实时提交的顶部尝试过 e.stopPropagation()?这听起来像是一个冒泡的问题。如果这不能解决它,您可以在某处放置表单的现场演示吗?
-
确保它是这样的` $("#form_"+items).live("submit", function(e) {` 然后紧接着把
e.stopPropagation() -
这与传播无关,因为无论如何“活”处理程序总是在身体上。这是必须阻止的默认操作,处理程序末尾已经存在的
return false;将负责这一点。
标签: php javascript jquery ajax post