如果我的用户点击不止一次上的形式的提交按钮时,他基本上发送多个GET / POST请求(取决于首选项形式)。

我发现,禁止使用JS提交按钮是有点问题,因为如果用户试图阻止(ESC /停止按钮),它不重置按钮(除非您捕捉和句柄再次使用JS)中,如果用户从下一个页面回来(返回按钮)时,提交按钮还是禁用(至少在Firefox)。

什么是用于禁用多个表单提交的最佳实践。

谢谢!

有帮助吗?

解决方案

JavaScript的作品对我很好。确保当用户中止他的提议是可用性的部分按钮(一个或多个)都回启用。

如果你不想使用按钮JavaScript,然后可能在服务器端,你可以在一定的时间跨度赶上重复消息禁用?

其他提示

这可能不是回答你的问题,但我认为,产生独特的识别服务器端请求可能是一个更好的主意的东西。客户端验证始终是个问题。

绑定禁用的表单提交,然后其禁用页面加载(当刷新重置/回):

function disableSubmits( domNode, toDisable )
{
    domNode = domNode || document.getElementsByTagName( 'body' )[ 0 ];

    toDisable = !!toDisable;

    for( var i = 0; i < inputs.length; ++i )
    {
        if( 'submit' === inputs[i].getAttribute( 'type' ) )
        {
            inputs[i].disabled = toDisable;
        }
    }
}

var onloadhandler = function( )
{
    var theForm = document.getElementById( 'theForm' );

    theForm.onsubmit = function( ){ disableSubmits( theForm, true ); }

    disableSubmits( theForm, false );
};

var old = window.onload;

window.onload =  'function' === typeof old
                 ? function( ){ old(); onloadhandler(); }
                 : onloadhandler;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top