使用按钮输入和jQuery提交表单

时间:2012-08-22 07:45:47

标签: jquery forms button submit

我有一个这样的表格:

<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();
  )};
)};

所以现在没有条件,但表格没有提交。

2 个答案:

答案 0 :(得分:4)

来自jQuery documentation for .submit()

  

附加说明:

     

表单及其子元素不应使用与表单属性冲突的输入名称或ID,例如submit, length,或者   方法。名称冲突可能导致混乱的故障。完整的   规则列表以及检查这些问题的标记,请参阅   DOMLint。

将第二个输入的id重命名为submitForm或类似名称。

工作小提琴:http://jsfiddle.net/WvSdX/

答案 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()操作中正确获取结果的问题。

请尝试一下,让我知道它是否正常工作。