我有一个由其他开发人员开发的 ASP.NET Web Form 应用程序。
此开发人员广泛使用ASP.NET控件,因此有许多自动生成的 Javascript 函数连接到HTML元素的事件。
现在我被要求添加功能:在第一次中风时禁用提交按钮,以避免用户多次点击按钮。
以下是我使用http://jsfiddle.net/2hgnZ/80/的 jQuery 代码,而 HTML DOM 与我使用的代码相同:
$('#form1').submit(function(e) {
$(this).find('input[type=submit]').attr('disabled', 'disabled');
// this is to prevent the actual submit
e.preventDefault();
return false;
});
我的代码中的这个脚本不起作用,经过多次尝试后我确信它取决于连接到按钮的onSubmit事件的 JavaScript 事件。
如何推迟执行这个Javascript而支持jQuery unobtrusive函数?
答案 0 :(得分:1)
HMM。你能确认你的事件正在解雇吗?我对提交的文档感到厌倦,而且它是有约束力而不是生活,这很好。
如何连接按钮呢?这不是完美的,因为输入键不使用按钮,但如果它以这种方式工作,你将学习一些东西
答案 1 :(得分:1)
您是否尝试过调用e.stopImmediatePropagation(); http://api.jquery.com/event.stopImmediatePropagation/
答案 2 :(得分:0)
这段代码延迟了你想要的功能量的执行。
// delay code for one second
$(document).ready(function()
{
window.setTimeout(function()
{
// delayed code goes here
}, 1000);
});
答案 3 :(得分:0)
这段代码应该可以帮助您获取原始事件,然后在您想要的代码之后触发它。
$(function(){
var $button = $('#actionButton'),
clickEvent = $button.data("events")['click'][0].handler; //saves the original click event handler
$button.unbind('click'); //and removes it from the button
//create a new click event.
$button.click(function(e){
// doWhatever we need to do
$.ajax({
url: url,
data: data,
success: function(){
$.proxy(clickEvent,$button)(e);//attach the original event to the button
}
});
});
});