2013-06-10 4 views
1

다음 작품의 기본 동작을이 그러나이 문제의 주제는 아닙니다.) 그러나 Chrome에서는 양식이 제출되지 않습니다. click 이벤트는 기본 액션 (폼 제출)이 일어나지 않도록합니다!어떻게 크롬에서 버튼을 클릭 처리기를 추가하고 여전히 파이어 폭스에서

결국 form.submit()과 같은 것을 할 수 있지만 파이어 폭스에서는 두 번 제출하겠습니까? 나는해야 할 것 같아 e.preventDefault() ... 여기에 쉬운 해결책이 있습니까? 대신 양식 제출 이벤트를 청취해야합니까? 것

답변

2

가장 깨끗한 방법은

이다 -> 버튼에 이벤트를 첨부

->

기본 동작을 방지 -> 제출 양식을

이 두 브라우저 모두에서 작동해야합니다. 당신은 올바른 길을 가고 있습니다.

var btn = document.getElementById("btn1"); 

btn.addEventListener && btn.addEventListener("click", FunctionName, false) || 
btn.attachEvent && btn.attachEvent("onclick", FunctionName); 

JQuery와 2-와 :

$('input[type="submit"]').on('click', function(e) { 
    e.preventDefault(); 
    $(this).addClass('disabled').attr('disabled', 'disabled') 
    $(this).val('Sending') 
    form.submit() 
}); 
0
$('input[type="submit"]').one('click', function() { setTimeout(function(){ return false; }, 20); }); 
0

내가 자바 스크립트와 기본 동작

1 .-를 이벤트 handdler를 설정하고 여전히 가지고있는 2 가지 방법 (look at this fiddle을) 알고

$("#btn1").click(function(event){ 
    //do something 
    if(!Valid) 
    { 
     //prevent default action() 
     event.preventDefault(); 
    } 
});