2015-02-07 34 views
0

我有奇怪的問題event.preventDefault。這在Chrome上運行良好,但不適用於Firefox。我知道很多人通過添加像這樣的事件arg來解決它:myFunction(event),但這樣做會使其停止在Chrome和Firefox上工作。有人可以幫助我在所有瀏覽器上使用此代碼嗎?如何讓preventDefault適用於所有瀏覽器?

<script type="text/javascript"> 
     function myFunction() 
     { 
        var asdf = $('input[name=payment_type]:checked', '#buy').val() 
        if (asdf == 'theRightOne') { 
         event.preventDefault()  
        alert("stuff") 
        } 
     } 
     </script> 
+2

你可能想標記這個是JavaScript的 - 你已經標記它爲Java,這是一種不同的語言環境完全。 – arcy 2015-02-07 22:42:08

+1

@arcy你知道你有足夠的聲望來重新提出一個問題,對吧? – Bobulous 2015-02-07 23:15:28

+0

請添加相應的html – 2015-02-08 00:43:39

回答

0

並非所有的瀏覽器都符合W3C標準,所以它們有時會以不同的方式處理事件。以下應在大多數瀏覽器工作:

function eventHandler(e) { 
 
    console.log('click event:', e); 
 

 
    if (e.preventDefault) { 
 
    e.preventDefault(); 
 
    } else { 
 
    e.returnValue = false; 
 
    } 
 
} 
 

 
function formSubmitDefault(e) { 
 
    console.log('form submit event:', e); 
 
} 
 

 
document.getElementById('input').onclick = eventHandler; 
 
document.getElementById('form').addEventListener('submit', formSubmitDefault);
<form action="#" id="form"> 
 
    <input id="input" type="submit"> 
 
</form>

這是一個有益的tutorial

+0

不行的,這裏是我的代碼:http://pastebin.com/6Nbx088i – user3757605 2015-02-08 15:46:34

+0

什麼方面的它不工作?順便說一句,'preventDefault'應該立即停止執行當前的處理程序,所以'alert('stuff')'可能不會在'preventDefault'調用之後執行。不知道這是你的問題。 。 。 – blcook223 2015-02-08 16:10:56

+0

它打開actions2.php – user3757605 2015-02-08 16:28:34

相關問題