防止对进行双击。

7 浏览
0 Comments

防止对进行双击。

有可能阻止用户在输入标签按钮类型为submit上双击吗?\n我尝试过ondblclick=\"javascript:void(0)\",但没有起作用。\n我的代码是在Html.BeginForm中,而不是form元素标签。\n非常感谢所有的帮助!

0
0 Comments

防止被双击的问题出现的原因是用户可能会多次点击按钮,导致多次提交表单。解决方法可以是使用JavaScript或MVC Action Filter来阻止多次点击。

一种解决方法是使用JavaScript代码,通过给按钮添加点击事件监听器来实现。在点击事件中,首先判断表单是否有效,如果有效则判断tryNumber变量的值。如果tryNumber大于0,表示表单已经提交过了,可以选择弹出警告或直接返回false来阻止再次提交。如果tryNumber等于0,表示表单还没有提交过,可以将tryNumber加1。

另一种解决方法是创建一个自定义的MVC Action Filter来跟踪请求并添加延迟值。这需要一些工作,但最终只需要在请求函数上添加一个自定义属性。

作者个人认为,这种问题的解决方法并不是正确的思路。无法防止每一次不希望的用户交互。相反,应该使POST请求稳定,并重新考虑逻辑以确保数据不会被破坏。可以使用一些设计模式,例如Post/Redirect/Get模式。

在这段对话中,还提到了禁用按钮或使用JavaScript/JQuery计算点击次数的方法。但是由于代码规模较大,无法重构,因此这些方法不适用。

总之,防止被双击的方法可以通过JavaScript或MVC Action Filter来实现,但作者认为从逻辑上保证POST请求的稳定性更为重要。

0
0 Comments

当用户点击提交按钮时,我们可以使用以下代码来禁用按钮:

$('.submitButton').prop('disabled',true); 

然而,有时候用户可能会快速点击提交按钮,导致多次提交相同的表单。这可能会引发一些问题,例如重复的请求或其他错误。

为了防止用户多次点击提交按钮,我们可以使用以下解决方法之一:

1. 禁用按钮:在用户点击提交按钮后,立即禁用该按钮,防止再次点击。这可以通过以下代码实现:

$('.submitButton').prop('disabled', true); 

2. 使用延迟:在用户点击提交按钮后,设置一个延迟时间,在这段时间内禁用按钮。这可以通过以下代码实现:

$('.submitButton').prop('disabled', true);
setTimeout(function(){
    $('.submitButton').prop('disabled', false);
}, 1000); // 设置延迟时间为1秒

3. 显示加载状态:在用户点击提交按钮后,显示一个加载状态,阻止用户再次点击。这可以通过以下代码实现:

$('.submitButton').on('click', function(){
    $(this).html('Loading...'); // 按钮显示为"加载中..."
    $(this).prop('disabled', true);
});

通过以上解决方法,我们可以防止用户多次点击提交按钮,避免出现重复提交表单的问题。

0
0 Comments

防止在上双击的问题可能出现的原因是用户在提交表单时可能会不小心双击按钮,导致表单多次提交。为了解决这个问题,可以使用以下方法:

可以尝试使用"one click"事件,它会禁用第二次点击事件。

$( "#XXXXX" ).one( "click", function() {
     alert( "This will click only once." );
});

以上代码将给指定的按钮添加了一个"one click"事件,当按钮被点击时,弹出一个警告框。这样,即使用户多次点击按钮,事件只会触发一次,从而避免了表单多次提交的问题。

0