不得不按2次提交按钮实际提交 - AJAX

时间:2013-11-05 17:25:37

标签: javascript php jquery ajax

正如标题所说......

我的一些代码:有更多的输入,但我会把这个只是为了简化。

 <form name="frmCadastroPlano" id="frmCadastroPlano" class="form-horizontal"  >

 <input class="input-xlarge" id="inputNome" name="inputNome" type="text" value="" style="height: 26;">

 <button type="submit" class="btn btn-primary" id="enviar">Cadastrar</button>

 <button class="btn" name="clear" id="clear">Cancelar</button>



<div id="resposta"></div>

    </form>

Ajax代码:

$("#frmCadastroPlano").submit( function(e) {
e.preventDefault();
dataString = $("#frmCadastroPlano").serialize();

$.ajax({
    type: "POST",
    url: "cadastroPlano.php",
    data : dataString,
    dataType: "html",

    success: function(retorno) {
        $("#resposta").html(retorno);
        resetForm('frmCadastroPlano');
    }

});
return false;
});

当我第一次按下按钮时,所有输入都会在网址中序列化,例如GET方法...示例url.php?inputNome = asdas&amp; inputDuracao = asdasda&amp; inputPreco = asdas ...然后表单被重置,我有再次输入数据,这样我最终可以提交...... 我已经看到了这个类似问题的另一个答案,但没有运气:/ Sry English。

带警报的OutPut(dataString) inputNome = ASDA&安培; inputDuracao = dsadas&安培; inputPreco = dasdas

3 个答案:

答案 0 :(得分:0)

你什么时候运行这个ajax代码?这看起来好像你没有在document.ready函数中运行它。试试这个

$(document).ready(function() { 
    $("#frmCadastroPlano").submit( function(e) {
        e.preventDefault();
        dataString = $("#frmCadastroPlano").serialize();

        $.ajax({
            type: "POST",
            url: "cadastroPlano.php",
            data : dataString,
            dataType: "html",

            success: function(retorno) {
                $("#resposta").html(retorno);
                resetForm('frmCadastroPlano');
            }

        });
        return false;
    })
});

旁注:在浏览器中使用开发者控制台(例如,在Chrome中使用Control + Shift + I)查看网络上发生的事情(例如,GET或POST /哪些数据/ ...)。这可能有助于您了解此类问题的根本原因。

您也可以查看this stackoverflow问题,因为在这种情况下它看起来与您的问题类似。

答案 1 :(得分:0)

尝试使用HTML5表单对象 -

$("#frmCadastroPlano").submit( function(e) {
    e.preventDefault();
    dataString = new FormData($("#frmCadastroPlano")[0]);

$.ajax({
    type: "POST",
    url: "cadastroPlano.php",
    data : dataString,
    dataType: "html",
    processData: false,
    timeout: 40000,
    success: function(retorno) {
        $("#resposta").html(retorno);
        resetForm('frmCadastroPlano');
    }
});
return false;
});

答案 2 :(得分:0)

你当时有另一个脚本在运行吗?可能是chrome或firefox扩展名吗?