我使用Jquery验证插件(http://jqueryvalidation.org/)来做一些简单的前端表单验证。至于我可以看到它的全部工作,但是现在我的表单似乎试图发送为get而不是post(所有数据保存到查询字符串并重新加载到页面上)。它真的很奇怪,我无法弄清楚我在这里做错了什么
HTML
<form id ="form1">
<p>What do you do for a living?</p>
<select name="Job">
<option value="4">job4</option>
<option value="3">job3</option>
<option value="2">job2</option>
<option value="1">job1</option>
</select>
<input type="submit" value="Submit" id ="formButton">
</form>
的Javascript
var form = $("form");
form.validate();
$("#button").click(function () {
var isValid = form.valid();
if (isValid) {
console.log("Valid: " + form.valid() + "form validation passed");
var frm = $('#form1');
frm.submit(function (ev) {
$.ajax({
type: "POST",
url: "form_validation.php",
data: frm.serialize(),
success: function (data) {
if (data.error) {
alert(data.error);
} else {
alert(data.message + " " + data.sql);
}
}
});
});
ev.preventDefault();
} else {
console.log("form validation failed");
}
});
答案 0 :(得分:2)
检查您正在使用的jQuery版本。用于请求的默认method
或type
为GET
。
在您的情况下,如果您使用的是> 1.9.0
使用method
属性的jQuery版本。
否则type
属性应该按原样运行。
method: 'POST'
答案 1 :(得分:2)
我会稍微更改您的HTML表单
<form id ="form1" onsubmit="return validateForm()" method="post">
<p>What do you do for a living?</p>
<select name="Job">
<option value="4">job4</option>
<option value="3">job3</option>
<option value="2">job2</option>
<option value="1">job1</option>
</select>
<input type="submit" value="Submit">
当我这样做时,这是有效的。