正如标题所说......
我的一些代码:有更多的输入,但我会把这个只是为了简化。
<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
答案 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扩展名吗?