我正在尝试使用jquery提交表单,以便在提交时页面不会刷新。我的代码是:
<div class="subscribe">
<p><span>Subscrever à Newsletter<span><br/>
<form method="post">
<input type="text" name="nwsltrname" value="Nome"/><br/>
<input type="email" name="nwsltrmail" value="Email" required/><br/>
<input type="hidden" name="nwsltrmailx" value=""/><br/>
<input type="submit" name="nwsltradd" value="Subscrever" />
</form></p>
</div>
jquery的:
$(".subscribe input[type=submit]").click(function() {
var siteurl = window.location.href;
var nwsltrname = $("input[name='nwsltrname']").val();
var nwsltrmail = $("input[name='nwsltrmail']").val();
var nwsltrmailx = $("input[name='nwsltrmailx']").val();
var dataString = "&nwsltrname="+ nwsltrname + "&nwsltrmail=" + nwsltrmail + "&nwsltrmailx=" + nwsltrmailx;
$.ajax({
type: "POST",
url: siteurl,
data: dataString,
success: function(){
alert("it works!");
}
});
return false;
});
所以问题是表单没有提交,但它仍然警告“它有效!”
我的代码出了什么问题?如何让它提交表格?
答案 0 :(得分:0)
我认为你需要
data: {
nwsltrname: nwsltrname,
nwsltrmail: nwsltrmail,
nwsltrmailx: nwsltrmailx
}
这将在服务器上创建正确的参数。警报所做的就是说服务端功能已经返回。并非它已正确处理。
另外,请查看上面的评论。
机会
答案 1 :(得分:0)
即使你在服务器代码中有错误,成功也会有效...所以在成功函数中添加一个响应参数然后提醒它知道服务器响应..然后你可以调试问题..改变代码如下。 ..
$.ajax({
type: "POST",
url: siteurl,
data: dataString,
success: function(response){
alert(response);
}
});
答案 2 :(得分:0)
$(".subscribe input[type=submit]").click(function() {
var siteurl = window.location.href;
var nwsltrname = $("input[name='nwsltrname']").val();
var nwsltrmail = $("input[name='nwsltrmail']").val();
var nwsltrmailx = $("input[name='nwsltrmailx']").val();
var dataString = "&nwsltrname="+ nwsltrname + "&nwsltrmail=" + nwsltrmail + "&nwsltrmailx=" + nwsltrmailx;
$.ajax({
type: "POST",
url: siteurl,
data: dataString,
success: function(){
alert("it works!");
}
});
return false;
});
以上请求应写为,
$(".subscribe input[type=submit]").click(function() {
var siteurl = window.location.href;
var nwsltrname = $("input[name='nwsltrname']").val();
var nwsltrmail = $("input[name='nwsltrmail']").val();
var nwsltrmailx = $("input[name='nwsltrmailx']").val();
var dataString = {
Nwsltrname = nwsltrname,
Nwsltrmail = nwsltrmail,
Nwsltrmailx = nwsltrmailx
};
$.ajax({
method: "POST",
url: siteurl,
dataType: "json"
data: dataString,
success: function(data){
alert("it works!");
}
});
return false;
});
注意:请记住您的请求类型是post,因此数据将在请求正文中发送,而不是标头。成功函数将返回数据。