2011-09-28 130 views
0

我一直在试图用jQuery ajax提交表单,但一直存在问题。 当我检查萤火虫,我看到的值发布,但它显示来自url的错误。我有这样的HTMLjquery提交表单的问题

<form method="post" name="tForm" id="tForm"> 
<table> 
<tr> 
<td>Age</td> 
<td><input name="age" id="age" value="" /></td> 
</tr> 
<tr> 
<td><input type="button" id="submit" value="submit"/></td> 
</tr> 
</table> 
</form> 
</body> 

我的JS提交表单文件中有这样一段代码

$(document).ready(function() { 

$('#tForm').submit(function(){ 
var age = $('#age').val(); 
var msg =''; 

$.ajax({ 
url:'testp.php', 
type:'post', 
data: {age:age}, 
beforeSend:function(){ 
alert(age); 
}, 
success:function(data){ 
msg=data; 
alert(msg); 
}, 
complete:function(){ 
alert(msg); 
} 
}) 
}) 
}); 

我testp.php文件只是有这个

<?php 
echo 'ok'; 
?> 
+0

“显示错误”?错误的性质可能有助于了解。 –

+0

你得到了什么响应代码? 'data:{age:age}'< - 这似乎注定要遇到麻烦,我会把第一个引用放在引号中。 – clifgriffin

+0

它不显示错误,可能只是在红色 –

回答

0

你需要停止事件来自传播。您的表单尝试使用标准方法提交,并且您的表单没有收到错误的操作。

$(document).ready(function() { 

    $('#tForm').submit(function(){ 
    var age = $('#age').val(); 
    var msg =''; 

    $.ajax({ 
    url:'testp.php', 
    type:'post', 
    data: {age:age}, 
    beforeSend:function(){ 
    alert(age); 
    }, 
    success:function(data){ 
    msg=data; 
    alert(msg); 
    }, 
    complete:function(){ 
    alert(msg); 
    } 
    }) 
    return false; 
    }) 
    }); 
+0

我添加了event.StopPropagation();线,但我得到事件没有定义错误 –

+0

对不起,我纠正它,但它仍然像以前一样 –

+0

@Ololade enifeni尝试将其替换为返回false; –

0

使用$('#tForm').submit(function(e){ ...,然后调用e.preventDefault();防止形式在常规(非Ajax)的请求被提交。

但是,我建议你看看jQuery form plugin,这可以节省一些工作。