【问题标题】:$('#email').submit() not working [duplicate]$('#email').submit() 不起作用[重复]
【发布时间】:2012-10-23 13:08:03
【问题描述】:

可能重复:
submit is not a function in javascript
How to submit form using JS

我有一个联系表单,用户点击提交时应该发生的事情,打开一个对话框,他们点击确定,然后表单提交。但是,当您单击确定时,它只是关闭对话框并且不提交表单。 您可以通过 here 测试代码。

Javascript/jQuery: //

function go_there(){

    $.prompt('<b>DISCLAIMER</b> <span style="font-weight:normal">TEXT WILL GO HERE</span>',{
       buttons: { Ok: true, Cancel: false}, 
       callback: function(e,v,m,f){
          if(v){

                 $('#email').submit()

          }else{

          }
       }
   });

}


//]]>  

</script>

HTML: //

<form method="post" action="nlphpmail.php" id="email">
            <input type="hidden" name="subject" id="subject" value="Feedback form" />
                <fieldset>
                    <div class="formfield">
                        <label class="text title" for="contact_who">Name</label>
                        <input type="text" class="text required" name="contact_who" id="contact_who" value="">
                    </div><!-- /.formfield -->
                    <div class="formfield">
                        <label class="text title" for="contact_sendto">Email address</label>
                        <input type="text" class="text required email" name="contact_sendto" id="contact_sendto" value="">
                    </div><!-- /.formfield -->
                    <div class="formfield">
                        <label class="text title" for="contact_phone">Phone</label>
                        <input type="text" class="text required" name="contact_phone" id="contact_phone" value="">
                    </div><!-- /.formfield -->
                    <div class="formfield">
                        <label class="text title" for="contact_message">Message</label>
                        <textarea name="contact_message" class="required" id="contact_message"></textarea>
                    </div><!-- /.formfield -->
                </fieldset>
                <div class="formfield">
  <button class="button" id="submit" value="send" type="button" name="submit" onClick="go_there();">Send</button>
                </div>
                </form>

【问题讨论】:

  • 类似stackoverflow.com/questions/12876293/…提交按钮#submit覆盖提交功能。
  • @Trisha 我认为@Musa 通过该帖子的建议是更改提交按钮的nameid
  • @KevinBoucher 是正确的,如果您打算使用提交功能通过 JavaScript 提交,则没有任何名称或 id 为 submit 的表单元素。
  • 谢谢,这确实解决了一个问题.. 现在当它提交表单时,它会指向实际的 nlphpmail.php 并加载错误“无法直接访问此页面”.. @Musa跨度>
  • 有一个$.prompt未定义错误

标签: javascript modal-dialog


【解决方案1】:

将“提交”按钮设为input type="button" 而不是input type="submit"。将 onclick 添加到实际提交表单的“确定”按钮。另外,正如 Musa 所提到的,不要设置任何 id 为“提交”的东西。

【讨论】:

  • Ben - 这有帮助,但是 - 现在单击 OK 时,它会加载 nlphpmail.php,但不会发送表单。它进入表单错误“无法直接访问”check here
  • “无法直接访问”似乎是目标页面的问题,而不是我们正在谈论的页面。您确定要链接到那里,而不是一些派生地址吗?此外,您可能需要检查跨浏览器兼容性。我在 Chrome 和 IE 中看到了两种不同的不当行为。
  • 本,它应该指向那个页面。如果需要,我可以发布该页面的 PHP 代码,如果它有助于找到问题。至于不当行为,它们是什么?
  • jsfiddle 与 nlphpmail.php 代码 here
  • 不当行为:IE 反复抱怨 JQuery 未定义。当您开始输入时,Chrome 会保留默认的灰色文本,而您只需在其下输入。至于其他的,你自己测试一下——你能通过在地址栏中输入地址直接进入nlphpmail.php页面吗?
猜你喜欢
  • 2018-06-29
  • 2014-09-14
  • 2012-05-20
  • 2016-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-28
  • 2021-07-06
相关资源
最近更新 更多