2012-01-28 18 views
0

我想不僅通過使用這個下拉列表ID,但我也試圖通過該行。傳遞錶行JS文件

<asp:DropDownList ID="dropdownPhase" _clientId="comboboxPhase" runat="server" Font-Size="xx-small" onchange="SummaryHelper.onPhaseChange(this,this.tr);" /> 

這裏是JavaScript從我的JS文件

onPhaseChange: function(dropdown, row) { 
    var combobox = $(dropdown); 
    var table = combobox.parents("table").eq(0); 
    comboboxWorkUnit = row.find("select.workUnit"); 

    if (combobox.data('oldValue') || !combobox.find("option[value='']").length) { 
     comboboxWorkUnit.hide(); 
    } 

}, 

當我運行它,它是我得到這個錯誤的方式:

Microsoft JScript runtime error: 'undefined' is null or not an object

回答

1

this.tr什麼。我很想知道你在哪裏。

如果你想傳遞的行,你需要得到就像你在函數行。

onchange="SummaryHelper.onPhaseChange(this,$(this).closest('tr'));" 

這與傳遞,因爲你正在使用它像功能的jQuery對象的行jQuery對象。


但是你也可以在函數中做到這一點。

onPhaseChange: function(dropdown) { 
    var combobox = $(dropdown); 
    var row = combobox.closest('tr'); 
    var table = combobox.parents("table").eq(0); 
    comboboxWorkUnit = row.find("select.workUnit"); 

    if (combobox.data('oldValue') || !combobox.find("option[value='']").length) { 
     comboboxWorkUnit.hide(); 
    } 

}, 
+1

我其實做出了這個.tr認爲這值得一試。 感謝您的幫助,它效果很好。 我認爲這樣做在功能本身其實是更好的感謝 – 2012-01-28 22:40:50

+0

這是有點偏離主題,但由於某種原因,如果我做comboboxworkunit.hide()它的作品,但是當我嘗試使用.show()它不工作 – 2012-01-28 23:17:16

+1

@ bugz:不知道爲什麼會這樣。檢查瀏覽器的開發者控制檯,看看是否有任何錯誤。 – 2012-01-28 23:38:09