2011-04-10 2 views
0

사용자가 링크를 클릭하면 다른 링크를 클릭 할 수 없어야합니다.이를 위해 증분 카운터가있는 Java 스크립트를 작성했습니다 만약 사용자가 이미 어떤 링크를 클릭했다면 우리는 몇 가지 메시지가있는 경고 상자를 보여주고 있습니다. IE에서 잘 작동합니다. Firefox에서는 두 번째 클릭에 대한 경고를 받고 있지만 파이어 폭스는 첫 번째 요청 처리를 중단하지 않습니다. 경고 상자가 변경되지 않은 경우에도 페이지를 새로 고칩니다. 양식을 명시 적 자바 스크립트를 통해 제출하고 있습니다.Firefox는 경고의 경우에도 양식을 제출합니다.

안녕 모두 PFB에게 미리

<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> 

양식 제출 스크립트 : 우리가

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

그리고 누군가가이 대답을 기대합니까? 코드를 표시하지 않고? 불행히도 마법의 지팡이와 수정 구슬이있는 마법사는 다른 사람들의 마음을 읽을 수 없으므로이 사이트를 자주 방문하지 않습니다. –

+0

읽을 수 없으므로 주석 섹션을 사용하여 코드 조각을 게시하지 마십시오. 이 코드를 포함시켜 원래 질문을 편집하십시오. 감사. –

+0

양식을 제출하면 취소 할 수 없습니다. 첫 번째 클릭은 양식을 제출할 것이며, 두 번째 클릭은 양식이 이미 제출되었으므로 실제 효과가 없습니다. –

답변

1

귀하의 질문이 명확하지 양식을 제출 통해

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

연결합니다. 사용자가 제출 버튼을 클릭하면 링크를 클릭해서는 안됩니다. 코드를 게시해야합니다. 양식에 관해서 당신이 IE에 "거짓 onsubmit에게

를 반환하지 않은 내 생각을 게시와

의, 파이어 폭스, 나는이 두 번째 클릭에 대한 경고를 얻고있다 를 잘 작동하지만, 파이어 폭스는하지 않습니다 첫 번째 요청의 처리를 중지하고 은 경고 상자 가 뭐가 잘못, 그럼 "

의 손길이 닿지 않은 경우에도 페이지를 새로 고칩니다. Firefox가 원하는대로 첫 번째 요청을 제출하면 두 번째 클릭시 경고가 표시됩니다. IE는 어떻게 다른가요? FF가 두 번 제출합니까?

추신 : 정말 카운터를 사용할 필요가 없습니다. 이 코드를 사용

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>` 
+0

IE는 "확인"을 클릭하지 않으면 페이지 새로 고침을 허용하지 않습니다.하지만 Firefox 3.6은 요청 된 페이지에 경고가 표시되고 같은 경고가 표시되지 않더라도 요청한 페이지를 제공합니다. Firefox 4에서는 자동으로 경고를 죽이고 요청한 페이지를 제공합니다. – Query

0

당신은에 allways 당신의 onsubmit 전화에 거짓을 반환 할 수 있습니다.

+0

그게 어떻게 도움이 될까요? 나의 이해에 따라 브라우저는 경고가 클릭 될 때까지 더 이상의 처리를해서는 안된다. 그러나 파이어 폭스는 경고창을 보여준 후에 모든 것을하고있다. – Query

관련 문제