1

我有这样的表格:

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

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

4

2 回答 2

5

从 jQuery文档中.submit()

补充笔记:

表单及其子元素不应使用与表单属性(例如提交、长度或方法)冲突的输入名称或 ID。名称冲突可能会导致令人困惑的失败。有关规则的完整列表并检查这些问题的标记,请参阅 DOMLint。

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

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

于 2012-08-22T08:55:07.710 回答
0

我认为这是一个价值比较问题。为了给我们一个更好的方法来确定是否是这种情况,您可以暂时将回调更改为 this 并尝试一下吗?

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

请试一试,让我知道它是否有效。

于 2012-08-22T07:51:48.070 回答