我有一个发送到php的表单,其中包含一些文本字段和图像字段。但是我的javascript没有收到来自php的回声。它将我重定向到一个php,数据在那里回显。想知道我的javascript为什么这样做。 谢谢你的时间!
<script type="text/javascript" >
$("button#signinbutton").click(function() {
if ($("#list").val() == "") {
$("p#result").html("Please enter both userna");
} else {
$.post($("#submitform").attr("action"), $("#submitform").serializeArray(), function(data) {
var reply = data.replace(/\s+/, "");
if($.trim(data) == 'success'){
location.replace("account.html")
}
else
{
$("p#result").html(data);
}
});
}
});
$("#submitform").submit(function() {
return false;
});
</script>
答案 0 :(得分:0)
听起来您的表单正在进行标准表单提交,浏览器会重新加载页面。很可能是因为没有将事件处理程序包装在DOM就绪函数中。在结束</body>
之前,使用DOM ready包装器,或将代码移动到页面的末尾。在分配事件时,DOM中不存在表单和按钮,因此它们永远不会被触发。
$(function(){
$("button#signinbutton").click(function() {
...
});
$("#submitform").submit(function() {
return false;
});
});
这将获得AJAX提交并将阻止页面刷新。如果您有文件上传输入,则无法使用serializeArray()
。 See this question for AJAX file uploads