jQuery UI 禁用整个页面上的所有提交按钮

Posted

技术标签:

【中文标题】jQuery UI 禁用整个页面上的所有提交按钮【英文标题】:jQuery UI Disable All Submit Buttons on Entire Page 【发布时间】:2013-03-31 06:04:40 【问题描述】:

提前感谢您的帮助。

请注意我正在使用 jQuery UI 来创建/样式按钮。

当用户单击提交按钮时,我想使用 jQuery 禁用所有表单上的所有提交按钮,在整个页面上。

这是我到目前为止所拥有的,目前它只禁用被点击的按钮,当我希望它禁用页面上的所有提交按钮时。

对于 jQuery UI:

<script>
$(function() 
$( ".button" )
.button()
);
</script>

禁用按钮:

 <script>
$(function() 
$('.button').button().click(function() 
    $(this).button('disable');
    $(this).closest('form').submit();
    return false;
);
$('input:submit').button('enable');
);
</script>

提交按钮/表单如下所示:

<form enctype="multipart/form-data" action="characters.php" method="post">
<input id="c_xp" class="text" type="text" value="150001" name="c_xp">
<input id="go" class="button ui-button ui-widget ui-state-default ui-corner-all" type="submit" value="Go" role="button" aria-disabled="false">
</form>

【问题讨论】:

您想在点击时禁用它们还是什么?他们都应该被禁用? 他们应该在提交时被禁用 看看我提供的小提琴 【参考方案1】:

这样做:

<script>
$(function() 
    $('.button').click(function() 
       $("input[type='submit']).button('disable');
       $(this).closest('form').submit();
       return false;
    );
$('input:submit').button('enable');
);
</script>

你可以做任何语句。

$("input[type='submit']").button('disable');
OR 
$("input[type='submit']").attr('disabled','disabled');

【讨论】:

这不起作用,使用此代码即使单击的按钮也不会禁用。 禁用你可以做的点击按钮.. $(this).button('disable');但你提到你想禁用所有按钮。 这可能很明显,但就我而言,我必须使用按钮[type="submit"]。更多信息在这里:api.jquery.com/submit-selector【参考方案2】:

这是一个禁用所有按钮的函数。

function disableButtons() 
    $('input[type=button], input[type=submit]').attr('disabled', 'disabled')

【讨论】:

【参考方案3】:

您的代码应如下所示:

<script>
$(function() 
$('.button').button()(function() 
    $('input[type=button], input[type=submit]').attr('disabled', 'disabled')
    $(this).closest('form').submit();
    return false;
);
);
</script>

【讨论】:

这不起作用,使用此代码即使单击的按钮也不会禁用。【参考方案4】:

此代码将使所有具有.button 类的按钮禁用

$( ".button" ).click(function() 
  $( ".button" ).button( disabled: true );
);

这是fiddle

【讨论】:

【参考方案5】:

我找到了解决方案,将我们的禁用代码更改为:

<script>
$(function() 
$('.button').button().click(function() 
    $('.button').button('disable');
    $(this).closest('form').submit();
    return false;
);
$('input:submit').button('enable');
);
</script>

成功了。

【讨论】:

【参考方案6】:

这样的……

$('form').submit(function () 
    $(':submit').attr('disabled', 'disabled');
);

【讨论】:

以上是关于jQuery UI 禁用整个页面上的所有提交按钮的主要内容,如果未能解决你的问题,请参考以下文章

使用 jquery 禁用/启用整个表单的提交

使用jQuery ui创建模态表单

我用jquery做登录界面时,点击登录按钮,怎样才能实现上面输入框的内容全部都合法,否则进不到下一个页面

ASP.NET JQuery,禁用表单提交按钮不调用 httpPost 操作

如果在 Jquery 加载页面时在网格中禁用了所有复选框,则如果没有选中复选框并禁用按钮,则发出警报

禁用页面上的所有按钮