我想通过jquery提交表单。我写的查询表格如下
$("#form").submit(function(event) {
if(!$("#change").hasClass("has-error") && !$("#name1").hasClass("has-error")
&& !$("#contact1").hasClass("has-error") && !$("#batch1").hasClass("has-error")){
alert("submitting");
event.preventDefault();
var $form=$(this);
name1=$("#name").val();
contact1=$("#contact").val();
email1=$("#email").val();
city1=$form.find("input[name='city']").val();
company1=$form.find("input[name='company']").val();
url=$form.attr("action");
var posting= $.post("some_link.php",{ name:name1,contact:contact1,email:email1,city:city1,company:company1});
posting.done(function(data){
alert("form submitted successfully");
)
})
$("#reset").click();
return false;
}
else return false;
});
但这是通过GET
方法发布表单而不是POST
方法,并且url表单也会重定向到其他php页面,而不是保留在此页面上。
这是链接的样子
http://www.example.com/current_page.php?name=jhgjk&contact=lksjf&email=lkdj%40ldkjf.clj&city=&company=
但我希望通常通过在表单中加入method="post"
来完成正常的帖子方法
编辑我犯了我正在做的错误。我错过了$ .post的结束括号,这就是代码无效的原因,我正在敲打我的脑袋。
答案 0 :(得分:1)
我认为使用名为$.ajax的技术会更好:
$("#form").submit(function(e) {
if(!$("#change").hasClass("has-error") && !$("#name1").hasClass("has-error")
&& !$("#contact1").hasClass("has-error") && !$("#batch1").hasClass("has-error")){
e.preventDefault();
alert("submitting");
$.ajax({
url: 'some-link.php',
type: 'POST',
data: $(this).serialize(),
success: function(data) {
alert('success!');
},
error: function(data) {
alert('error');
}
});
}
else return false;
});