2010-03-23 59 views
0

我想觸發點擊事件從jquery的按鈕。它在FF中效果很好,但IE(所有版本)似乎都忽略它。這是我到目前爲止已經試過..單擊事件不在IE瀏覽器中觸發

$('#uxcSubmit').trigger('click'); 

然後嘗試這個..

$('#uxcSubmit').click(); 

只是清除out..even這個..

jquery('#uxcSubmit').click(); 

然後甚至試過這種檢查是否是jquery問題..

document.getElementById('uxcSubmit').click(); 

似乎沒有任何幫助IE ..

在此先感謝..

更新:這是代碼..和我是沒有具有相同ID的元素..

<div id="uxcSavingDiv">Click sumbit to save changes...</div> 
<input id="uxcSubmit" value="Submit" onclick="return SaveChange();"/> 
<script type="text/javascript"> 
function getFrameValue() { 
    if (Stage == 0) { 
      $('#uxsHiddenField').attr("value", "saved"); 
      Stage = 1; 
      $('#uxSubmit').click(); 
      return false; 
    } 
    else { 
     $('#uxcSavingDiv').innerHTML = "Saving..."; 
     return true; 
    } 
} 
</script> 

我想我在這裏已經明確

+0

好像你有相同ID的更多元素 - 不是嗎? – yedpodtrzitko 2010-03-23 08:21:33

+0

你應該發佈你正在嘗試的代碼塊,以及你正在嘗試做什麼(例如,如果你試圖觸發之前附加的自定義事件,或者你期待瀏覽器的某些行爲,比如提交一個形成)。如果你想提交表單,最好使用$(「#formID」)。submit()。如果您嘗試觸發附加事件,請確保您沒有在附加該事件的相同函數中調用.click(),但只有在當前函數返回後,IE纔可能附加它。 – Felix 2010-03-23 08:21:54

+0

請參閱http:// stackoverflow。com/questions/980709/javascript-invoking-click-event-of-an-anchor-tag-from-javascript – knittl 2010-03-23 08:51:33

回答

1

在您發佈的代碼Stage是未定義的,IE不會這樣。另外$('#uxSubmit').click();應該是$('#uxcSubmit').click();。我也不確定你何時致電getFrameValue();,但它必須在document.ready之後或之後完成,否則元素將不會與那裏的選擇器相匹配。

我清理使用jQuery方法以及其餘的(離開內嵌的演示,但我會刪除此以及和其更改爲一個單擊處理程序),這個工作正常IE8:

<div id="uxcSavingDiv">Click sumbit to save changes...</div> 
<input id="uxcSubmit" value="submit" onclick="return SaveChange();"/> 
<script type="text/javascript"> 
var Stage = 0; 
function getFrameValue() { 
    if (Stage == 0) { 
      $('#uxsHiddenField').val("saved"); 
      Stage = 1; 
      $('#uxcSubmit').click(); 
      return false; 
    } 
    else { 
     $('#uxcSavingDiv').html("Saving..."); 
     return true; 
    } 
} 
function SaveChange() { 
    alert("Value clicked"); 
} 
$(function(){ 
    getFrameValue(); //Trigger it on document.ready 
}); 
</script> 

要更改SaveChange()到綁定單擊處理程序,刪除的onclick和做這個準備:

$('#uxcSubmit').click(SaveChange); 
+0

看起來像你有它覆蓋給我 – 2010-03-23 11:37:49

0
$("#uxcSubmit").closest("form").submit('SaveChange'); //let SaveChange() return true/false 

...並刪除內嵌的 'onClick' 屬性

0

從jQuery的相關的代碼塊應該是一個

// Trigger an inline bound script 
try { 
    if (!(elem && elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()])) { 
     if (elem[ "on" + type ] && elem[ "on" + type ].apply(elem, data) === false) { 
      event.result = false; 
     } 
    } 
    // prevent IE from throwing an error for some elements with some event types, see #3533 
} catch (e) {} 

所以我想無論這個事做與錯誤提到3533(我無法檢查作爲dev.jquery.com是在下降那一刻)或者還有一些其他的IE bug。順便說一句。你在錯誤控制檯中得到任何警告嗎?

+0

沒有沒有警告.. – ZX12R 2010-03-23 09:54:07

相關問題