我必须放弃它,但我不确定: - )
我有一个标准的asp:按钮控件,后面有一个代码点击事件。
然后,为了防止双击我在客户端点击禁用按钮:
$('#<%=BTN_GCR_CheckCardValue2.ClientID %>').bind('click', function () {
$('#<%=BTN_GCR_CheckCardValue2.ClientID %>').attr('disabled', 'disabled');
});
已禁用的工作,页面回发(进入页面的加载事件),但不会输入事件背后的代码。
此jquery代码使用bind
方法,也使用click
进行了尝试,结果相同。
我在俯瞰什么?
EDIT 按钮
<asp:Button ID="BTN_GCR_CheckCardValue2" runat="server" CssClass="individual_small_inputs"
OnClick="BTN_GCR_CheckCardValue2_Click" Text="CHECK" />
导致
<input type="submit" name="ctl00$ctl00$CPHMainSection$CPH_LeftSection$BTN_GCR_CheckCardValue2" value="CHECK" id="ctl00_ctl00_CPHMainSection_CPH_LeftSection_BTN_GCR_CheckCardValue2" class="individual_small_inputs" />
答案 0 :(得分:3)
禁用的控件不会在后端获取任何事件。首先,发生禁用。然后单击事件气泡到默认处理程序并发生回发。这就是你所看到的原因。至于可行的自定义解决方案...尝试使用jquery简单地使此按钮不可见(css属性“visibility”设置为隐藏)而不是禁用它。如果这样可行,您可以继续进行实验。例如,您可以使用某种消息(例如“正在进行中...”)为您的按钮设置容器。然后将css属性“position”设置为按钮的“绝对”值。这样,您的按钮将覆盖消息。当按钮变为不可见时,用户将看到该消息。例如,在这里使用类似的方法:http://s-c.me/ (大“突出IT!”按钮)。 附:对不起,我还不能发送screnshots。
答案 1 :(得分:2)
答案 2 :(得分:1)
最终解决方案:D
$('#<%= BTN_GCR_CheckCardValue2.ClientID %>').click(function () {
$(this).attr('disabled', 'disabled');
$(this).parent().append($('<input />', {type: "hidden", name: $(this).attr('name') }));
});
答案 3 :(得分:0)
不是真正正确的解决方案,但可以将其放在setTimeout(function(){ ...disable... }, 1);
。