我需要防止在发布表单时双击asp.net按钮。
我尝试了以下jQuery代码:
$(this).submit(function () {
$('.btn').prop("disabled", "disabled");
});
它适用于Firefox浏览器,但不适用于Chrome。
这是我的asp.net按钮的HTML:
<form name="aspnetForm" method="post" action="reset-password.aspx" id="aspnetForm">
<div class="orangeBTN">
<input type="button" name="ctl00$ctl00$content$content$btnSubmit" value="Submit" onclick="javascript:__doPostBack('ctl00$ctl00$content$content$btnSubmit','')" id="ctl00_ctl00_content_content_btnSubmit" class="btn pri" />
</div>
</form>
我可以使用一种简单的方法吗?
为了你的帮助,非常感谢。
更新我
我包含了.aspx html,以及现在似乎对我有效的JavaScript。
<asp:Panel ID="pnlInput" CssClass="pnlInput" runat="server">
<fieldset id="resetPassRight">
<asp:Panel ID="pButtons" runat="server" CssClass="buttons">
<asp:Button ID="btnSubmit" Text="Submit" CssClass="btn pri" runat="server" />
</asp:Panel>
</fieldset>
</asp:Panel>
JavaScript的:
<script type="text/javascript">
$(document).ready(function () {
$('.pnlInput fieldset .btn').one('click', function () {
$(this).trigger("click");
$(this).attr('disabled', 'disabled');
});
});
</script>
更新II
下面是我最终使用的jQuery代码。到目前为止,我认为它有效。
/** Start - This jQuery will disable double click */
$('.pnlInput fieldset .btn').one('click', function () {
$(this).trigger("click");
$(this).attr("disabled", 'disabled');
});
/** End - This jQuery will disable double click */
jQuery没有执行的原因之一是asp按钮具有以下属性:
UseSubmitBehavior="false"
这阻止了在不同浏览器中正确评估客户端代码。
答案 0 :(得分:0)
您可以尝试.attr()而不是.prop()
答案 1 :(得分:0)
如果输入有一个type="button"
,它将不会触发提交功能(甚至在FF上,或者至少我无法获得它),正如你在这个小提琴上看到的那样:{{3} }(用空函数替换目标以避免错误)
如果您将输入更改为type="submit"
,则会触发提交功能并禁用该按钮。你可以在另一个小提琴上看到它:http://jsfiddle.net/4ye9921e/
因此,只需将输入更改为submit
,然后触发onsubmit事件。
答案 2 :(得分:0)
这适用于我的情况。 __doPostBack($(this).attr('name'),'')需要Chrome。
<asp:Button ID="Btn_AjouterFichier" runat="server" Text="Ajouter photo" CssClass="singleclick" />
$('.singleclick').click(function () {
$(this).attr('disabled', 'disabled');
__doPostBack( $(this).attr('name'), '')
});