【问题标题】:jQuery disabled form is submitted on enter输入时提交 jQuery 禁用表单
【发布时间】:2015-02-13 09:25:19
【问题描述】:

我有一个 jQuery 表单,我在其中禁用表单提交,直到 jQuery 被初始化。

代码看起来像这样

<form id="loginForm" role="form" class="form-horizontal col-md-8" action="">
   <input type="email"/>
   <input type="password"/>
   <input type="submit" class="disabled">
</form>

(代码有点简化。) 通知类“已禁用”

在 jQuery 方面,我正在这样做

$().ready(function() {
    $("#loginBtn").removeClass("disabled"); // This ensures that javascript was loaded before button is pushable
});

问题是当页面加载按钮被禁用并且不允许用户单击它时。但是当按钮被禁用并且用户填写表格并按回车时。表单正在提交。

我想暂停提交表单(通过任何方式),直到正确加载 jQuery。

我怎样才能做到这一点?

【问题讨论】:

  • 输入是否正确设置了id属性?为什么不使用 disabled 属性而不是 disabled 类?
  • 查找:[使用 jQuery 在 'Enter' 上提交表单?][1] [1]: stackoverflow.com/questions/699065/…
  • @mgamon 我试过这样做。在表单提交操作中,我尝试返回 false,但它似乎不起作用。
  • @wit_peter 很遗憾不能使用 jQuery。这个问题的唯一原因是 jQuery 没有初始化。

标签: javascript jquery html forms


【解决方案1】:

您知道在按钮上设置 class="disabled" 并不会真正禁用它,对吧? ;-)

我认为你需要这样的东西:

<form id="loginForm" role="form" class="form-horizontal col-md-8" action="">
   <input type="email"/>
   <input type="password"/>
   <input type="submit" disabled>
</form>

$(function() {
    $("#loginForm input[type=submit]").attr("disabled", null); 
});

See JSFiddle here

【讨论】:

  • 正如我在问题中提到的,此时尚未初始化 jQuery 所以这不起作用。如果 jQuery 被初始化,我的代码可以正常工作
  • 重点是“禁用”属性,而不是jQuery。如果您的问题是在禁用按钮时正在提交表单,那么我的代码可以工作。
【解决方案2】:

试试这个: 修改您的登录表单提交按钮,如下所示

$("#loginForm").submit(function() {
   if($("#loginBtn").hasClass("disabled")) return false;
   //rest of your code as it is
      .....
}

注意 - 根据您的html,提交按钮没有id="loginBtn",请添加。

【讨论】:

  • 我刚刚尝试在该函数中编写警报,它根本没有被执行。我有一个函数$("#loginForm").submit(function() { // some code}。是因为这个吗?
  • 感谢您的努力,Bhushan。但不能使用 jQuery,因为它没有被初始化导致问题。
  • jquery 应该首先被初始化,你应该在&lt;head&gt;&lt;body&gt; 标记之前包含jquery 和脚本。请与您的问题陈述分享 jsfiddle。
【解决方案3】:

刚刚添加了onsubmit="return false"它起作用了。

<form id="loginForm" role="form" class="form-horizontal col-md-8" action="" onsubmit="return false">

【讨论】:

    猜你喜欢
    • 2013-07-21
    • 1970-01-01
    • 2013-05-19
    • 2010-12-26
    • 2018-05-02
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 2022-01-11
    相关资源
    最近更新 更多