即使在警报的情况下,Firefox也会提交表单

时间:2011-04-10 13:45:50

标签: javascript firefox

我们要求如果用户点击任何链接,他就不应该点击任何其他链接。为了实现这一点,我们编写了一个带有递增计数器的java脚本。如果用户已经点击任何链接,我们正在显示一个警告框,上面有一些消息。在IE上工作正常,在Firefox中,我收到第二次点击的警报但火狐不会停止处理第一个请求并刷新页面,即使警报框是不变。 我们通过显式的java脚本提交表单。

Hi All PFB the snippets

<script>
var counter = 0;
function incrementCount(){
if(counter>0){
alert('Your request already in progress. Please wait.');
return false;
}else{
counter=counter+1;
return true;
}
}
</script>

表单提交脚本:

<script>
function fnTest() {
        if(incrementCount()){
        document.FormName.method = "POST";
        document.FormName.action = "SomeURL";
        document.FormName.submit();     
        }else{
        return false;
        }
    }
    </script>

我们提交表单的链接

<a href="javascript:void(0);" onClick="return fnTest();" title="overview"><span>Test</span></a>

2 个答案:

答案 0 :(得分:1)

你的问题不清楚。如果用户点击提交按钮,他应该无法点击链接?您需要发布您的代码。

关于表单帖子,我的猜测是你没有返回false onsubmit

  

“在IE上工作正常,在Firefox中,   我正在接受警报   点击但火狐不会停止   处理第一个请求和   即使警报框刷新页面   是不受影响的“

嗯,出了什么问题。 Firefox正在根据需要提交第一个请求,并在第二次单击时显示警报。 IE有何不同? FF正在进行双重提交吗?

PS:你真的不需要使用计数器。使用此代码:

var handlers = { 
     alert : function(){ 
           alert('Your request is already in progress. Please wait.')
           return false 
     },
     submitForm : function(){
           this.onclick = handlers.alert //this refers to the a tag
           document.FormName.submit()
     }
}

document.getElementById('mysubmitlink').onclick = handlers.submitForm

在你的链接上变成:

`<a href="#" id='mysubmitlink' title="overview"><span>Test</span></a>`

答案 1 :(得分:0)

您可以随时在onsubmit呼叫上返回false。