用jquery提交表单说它有效,但事实并非如此

时间:2016-04-27 11:51:20

标签: javascript jquery html forms

我正在尝试使用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;
 });

所以问题是表单没有提交,但它仍然警告“它有效!”

我的代码出了什么问题?如何让它提交表格?

3 个答案:

答案 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,因此数据将在请求正文中发送,而不是标头。成功函数将返回数据。