2014-02-19 60 views
0

我似乎無法得到這個火..或確實更改標籤文本。任何人都可以提供任何建議嗎? 警報在那裏只是因爲我正在測試,看看事件是否實際上正在發射..它似乎不是。唯一的另一條信息是這是一個fancybox iframe中的表單。我甚至不確定我的代碼是否有權更改文本,但這是第二個問題..現在我無法啓動該事件。使用jquery從下拉列表更改標籤文本

代碼是

<asp:DropDownList ID="ddlPUom" runat="server" CssClass="form-control input-sm"></asp:DropDownList> 



<asp:Label ID="lblpuom" ccclass="col-xs-2 control-label" runat="server" Text=""></asp:Label> 


<script type="text/javascript"> 
    $('#ddlPUom').change(function() { 
     alert("did this fire?"); 
     var lbltext = doc.getElementById("ddlPUom"); 
     var lblPUOM = doc.getElementById("lblpuom"); 
     lblPUOM.lbltext = lbltext.innerhtml; 
    }); 
</script> 

感謝所有的意見..你在正確的方向轉向了我。最後,我將標籤更改爲標準<label></label>,這些標籤與上述代碼一起工作,並創建了document.ready函數以便從後面的代碼中設置的下拉列表更新。

+1

您是否將'document'設置爲'var doc ='? –

+0

你能否加入標籤HTML的片段? – EkoostikMartin

+2

也請向我們展示您的HTML。和'innerhtml!== innerHTML' –

回答

1

的原因在於,由於ddlPUom是一個服務器端控制,當在DOM被渲染的ID變化。頁面信息和控制信息被前置,成爲這樣的事情ctl00_Main_ddlPUom

使用

$('[id$=ddlPUom]').change(function() { // id which ends with the text 'ddlPUom'

$('[id*=ddlPUom]').change(function() { // id which contains the text 'ddlPUom'

但也有其他幾個位置的方式 https://stackoverflow.com/a/20227176/489512

+0

感謝您的幫助。你們都在正確的路線上。實際上,標籤不需要運行服務器,因爲我可以將它們設置爲從下拉列表中選擇正確的值,這些值最初是從後面的代碼中設置的。因此,最後設置一個document.ready函數來設置標籤,然後.change根據需要更改它們。 – user3311356

+0

@ user3311356 - 很高興提供幫助。 – Krishna

0

您的代碼看起來正確,足以讓您的提醒執行。也許你的控件的id實際上沒有設置爲ddlPUom。有時區分大小寫。看到這個帖子對大小寫JQuery class selectors like $(.someClass) are case sensitive?

同時檢查錯誤控制檯在瀏覽器中查看是否有任何的JavaScript錯誤拋出。 Firefox:工具> Web開發人員>錯誤控制檯 Chrome:右鍵單擊頁面並選擇檢查元素,在出現的窗口中單擊控制檯。

現在你添加的HTML - 下面的代碼應該得到的事件觸發。

$(document).ready(function(){  
$('#<%=ddlPUom.ClientID%>').change(function() { 
      alert("did this fire?"); 
    } 
}); 
+0

ClientID的缺點是你不能在外部腳本文件中編寫這段代碼。 – Krishna

0

你可能會能夠嘗試這樣的事情..

<script type="text/javascript"> 
    $('#ddlPUom').change(function() { 
     alert("did this fire?"); 
     var lbltext = doc.getElementById("<%=ddlPUom.ClientID%>"); 
     var lblPUOM = doc.getElementById("<%=lblpuom.ClientID%>"); 
     lblPUOM.lbltext = lbltext.innerhtml; 
    }); 
</script> 

您可能還需要將ClientID部分添加到您的下拉列表中。

+0

'ClientID'的缺點是你不能在外部腳本文件中寫這段代碼。 – Krishna

+0

另外'$('#ddlPUom')。change'不起作用。 – Krishna