我有一个这样的表格:
<form id="myform" action="something.php" method="post">
<input type="text" name="first_name" /><br />
<input type="button" id="submit" value="Send" />
</form>
我希望在从JavaScript和jQuery中的某些进程获得成功消息后提交此表单。所以我这样做了:
$(document).ready(function(e) {
$('#submit').click(function(event){
event.preventDefault();
$.post('process/process.php',
{
// I passed data here
},
function(data) {
if (data.result == '1') {
$('#myform').submit();
} else {
alert('Error #'+data.result+' occurred!');
}
},
'json'
);
});
});
但即使在获得data.result == '1'
之后,提交表单也无效。这里的问题是什么?
修改:
我已将jQuery更改为:
$(document).ready(function(e) {
$('#submit').click(function(event){
$('#myform').submit();
)};
)};
所以现在没有条件,但表格没有提交。
答案 0 :(得分:4)
来自jQuery documentation for .submit()
,
附加说明:
表单及其子元素不应使用与表单属性冲突的输入名称或ID,例如submit, length,或者 方法。名称冲突可能导致混乱的故障。完整的 规则列表以及检查这些问题的标记,请参阅 DOMLint。
将第二个输入的id重命名为submitForm
或类似名称。
答案 1 :(得分:0)
我认为这是一个价值比较问题。 为了给我们一个更好的方法来确定是否是这种情况,你是否可以暂时改变对此的回调并尝试一下?
$(document).ready(function(e) {
$('#submit').click(function(event){
event.preventDefault();
$.post('process/process.php',
{
// I passed data here
},
function(data) {
$('#myform').submit();
},
'json'
);
});
});
如果表单被提交,那么jQuery部分没有任何问题,这是从post()操作中正确获取结果的问题。
请尝试一下,让我知道它是否正常工作。