我花了一个小时左右的时间在这里和谷歌上搜索,但都没有成功。我有一个表格,我想通过邮寄提交。javascript可以正常运行和验证,甚至可以“提交”表单。但是,当它这样做时,它只是重新加载页面。不发送POST标头(使用Firefox中的Firebug确认)。就好像它只是简单地重新加载页面,而不是提交它。
此表单嵌入在addUser.php页面中。
<form action="addUser.php" method="post" name="NewUser">
<div data-role="field-contain">
<label label-for="EmpID" class="ui-hidden-accessible">Enter Employee ID</label>
<input name="EmpID" id="EmpID" placeholder="Employee ID" value="" autocomplete="off" title="Enter Employee ID" type="number" required autofocus>
<label label-for="UserName" class="ui-hidden-accessible">Enter username</label>
<input name="UserName" id="UserName" placeholder="Username" value="" autocomplete="off" title="Enter the new username" required>
<p>
<label label-for="NewPass1" class="ui-hidden-accessible">Enter Your Current Password</label>
<input name="NewPass1" id="NewPass1" placeholder="New Password" value="" type="password" autocomplete="off" title="Must be at least 8 characters, with numbers and upper and lower case letters." required>
</p>
<p>
<label label-for="NewPass2" class="ui-hidden-accessible">Enter Your Current Password</label>
<input name="NewPass2" id="NewPass2" placeholder="Verify Password" value="" type="password" autocomplete="off" title="Re-enter your chosen new password." required>
</p>
</div>
<button type="button" name="submitButton" value="submitButton" data-theme="d" data-inline="true" data-icon="check" data-iconpos="left" onclick="validateForm ()">
Add User
</button>
这是Javascript:
function validateForm()
{
var reason = "";
reason += validateEmpID();
reason += validateUserName();
reason += validateNewPassword();
if (reason != "") {
alert("There are some errors with the data you entered:\n" + reason);
return false;
} else {
document.NewUser.submit();
}
}我尝试了调用submit的各种不同方法,结果都是一样的。非常感谢您的帮助。
谢谢Gareth
发布于 2013-03-20 12:58:01
为什么不使用AJAX帖子呢?或者更好的是一篇jQuery AJAX文章?
$.post(url, data, datatype);http://api.jquery.com/jQuery.post/
发布于 2013-03-20 12:59:32
我觉得应该是
document.forms['NewUser'].submit();或
document.forms.NewUser.submit();发布于 2013-03-20 14:24:30
我认为您缺少添加return false,这就是您的浏览器要求重新加载表单的原因。更好的提交方式是使用提交按钮,而不是简单的按钮。
https://stackoverflow.com/questions/15515639
复制相似问题