2016-04-22 62 views
0

我正在工作的表單,我不想輸入/返回提交表單,所以我使用了這樣的功能。添加按鍵或eventlistener輸入,「TypeError:... addEventListener不是一個函數」

$('[name="form"]').keypress(function(e) { 
     var charCode = e.charcode || e.keyCode || e.which; 
     if (charCode === 13) { 
      e.preventDefault(); 
      return false; 
     } 
    }); 

這有效,但現在我想分配輸入/返回來執行窗體上兩個輸入的功能。我完全陷入困境。

爲了獲得輸入我試着用id調用vanilla js,用id調用jQ,然後用變量將兩者混合。我也試過.keypress,.keydown,.keyup而不是attachEventListener方法。無論我做什麼,我都會在控制檯中看到這個錯誤。

「類型錯誤:...的addEventListener是不是一個函數」(或按鍵,等的keydown)

我也研究了一個很好的交易,但無法找到任何解決方案。我很欣賞任何建議。 這是它的當前形式的代碼塊,這給了麻煩。

var yelpInput = $('#inputURL'); 
    var googleInput = $('#googleURL'); 

    yelpInput.addEventListener("keydown", function(e) { 
     if (e.keyCode === 13) {       
      alert('do stuff!'); 
     } 
    }); 

    // Google 
    googleInput.addEventListener("keydown", function(e) { 
     if (e.keyCode === 13) {  
      alert('do stuff!'); 
     } 
    }); 

由於

+0

'yelpInput'和'googleInput'是jQuery的對象不是DOM對象。 –

+0

我也嘗試通過document.getElementById('yelpInput')獲取輸入;等等,並得到同樣的錯誤。 – DjH

+0

奇怪。這似乎工作: https://jsfiddle.net/subterrane/0rkgdd4w/ – Will

回答

3
var yelpInput = $('#inputURL'); 
var googleInput = $('#googleURL'); 

yelpInput.keydown(function(e) { 
    if (e.keyCode === 13) {       
     alert('do stuff!'); 
    } 
}); 

// Google 
googleInput.keydown(function(e) { 
    if (e.keyCode === 13) {  
     alert('do stuff!'); 
    } 
}); 
+0

謝謝,我之前使用keydown方法,它沒有工作。我一定搞砸了,因爲現在工作。 – DjH

+0

我的榮幸..;) –

2

yelpInputjQuery包裝對象不具有addEventListener方法。

使用.onjQuery包裝對象或yelpInput[0].addEventListener/yelpInput.get(0).addEventListener附上event-handler使用JavaScript作爲yelpInput[0]將是一個DOMElementjQuery-wrapped對象附加事件。

var yelpInput = $('#inputURL'); 
 
var googleInput = $('#googleURL'); 
 

 
yelpInput.on("keydown", function(e) { 
 
    //-----^^^ 
 
    if (e.keyCode === 13) { 
 
    alert('do stuff!'); 
 
    } 
 
}); 
 
googleInput.on("keydown", function(e) { 
 
    //-------^^^ 
 
    if (e.keyCode === 13) { 
 
    alert('do stuff!'); 
 
    } 
 
});

相關問題