http://jsfiddle.net/QsTfc/
对于一些奇怪的原因,形式不断提交即使我返回false。我曾尝试:
$(#submitEdit)。递交(函数(){
返回false;
});
$(#submitEdit)。递交(函数(){
。事件preventDefault();
});
这是我目前有:
<脚本>
$('A')。点击(函数(){
VAR parentId的= $(本).closest(TR)ATTR('身份证')。
变种子= $(#+ parentId的)。儿童()当量(1)。
VAR childText = $(孩子)的.text();
$(孩子)的.html('<形式的行动=< PHP的回声网址;>用户/ changeSettings /+ parentId的+'的方法=POSTID =submitEdit><输入类型=文本名称=+ parentId的+'值=+ childText +/>< /形式GT;');
执行console.log(childText);
});
$(#submitEdit)。在(提交,函数(){
VAR URL = $(本).attr(行动);
VAR数据= $(本).serialize();
警报(数据);
$。员额(URL,数据,函数(返回){
$(parentId的+字段)HTML(返回);
返回false;
});
返回false;
});
< / SCRIPT>
解决方案
根据你的jsfiddle演示的形式dinamically添加。所以,你必须使用委派:
$(文件)。在(提交,#submitEdit,函数(){
VAR URL = $(本).attr(行动);
VAR数据= $(本).serialize();
警报(数据);
$。员额(URL,数据,函数(返回){
$(parentId的+字段)HTML(返回);
返回false;
});
返回false;
});
的jsfiddle
http://jsfiddle.net/QsTfc/
For some odd reason the form keeps submitting even though I am returning false. I have tried:
$("#submitEdit").submit(function() {
return false;
});
$("#submitEdit").submit(function() {
event.preventDefault();
});
And this is what I currently have:
<script>
$('a').click(function() {
var parentId = $(this).closest('tr').attr('id');
var child = $("#" + parentId).children().eq(1);
var childText = $(child).text();
$(child).html('<form action="<?php echo URL; ?>user/changeSettings/' + parentId + '" method="POST" id="submitEdit"><input type="text" name="' + parentId + '" value="' + childText + '" /></form>');
console.log(childText);
});
$("#submitEdit").on("submit", function() {
var url = $(this).attr('action');
var data = $(this).serialize();
alert(data);
$.post(url, data, function(returned) {
$(parentId + "Field").html(returned);
return false;
});
return false;
});
</script>
解决方案
According to your jsfiddle demo your form is added dinamically. So, you have to use delegation:
$(document).on("submit", "#submitEdit", function() {
var url = $(this).attr('action');
var data = $(this).serialize();
alert(data);
$.post(url, data, function(returned) {
$(parentId + "Field").html(returned);
return false;
});
return false;
});
JSFIDDLE