2013-10-04 89 views
0

使用它,這是我的控制:傳遞一個文本框的客戶端Id在JavaScript函數

<asp:TextBox ID="txt_rol" onkeyup="this.value=this.value.toUpperCase()" runat="server" BorderColor="#E0E0E0" BorderStyle="Solid" Width="240px"></asp:TextBox> 
        </strong> 
        <asp:ImageButton ID="imgBtnGuardar" runat="server" ImageUrl="~/imagenes/boton.guardar.jpg" OnClientClick="ValidaCajadeTextoVacia(document.getElementById('<%=txt_rol.ClientId%>'));MensajeCargandoJQUERY();"/> 

的問題是,我不能讓文本框的ID。

回答

0

好吧,馬上我可以告訴你,代碼中有語法問題。它應該是:

'<%= txt_rol.ClientID %>' 

您可能還需要克服其他障礙。例如,如果這些控件嵌套在GridView中,那麼您將無法以這種方式引用該控件。

+0

我沒有使用gridview,我只是使用masterpage,而內部marterpage是我嘗試獲取clientId的形式,事情是,當我嘗試使用'<% %>',我甚至沒有自動完成 – Bachask8

0
function masterClick(clicked, controlID) { 
    var dynCtrl = clicked.id.substring(0, clicked.id.lastIndexOf("_") + 1); 
    var tBox = document.getElementById(dynCtrl + controlID); 
    tBox.value = ""; 
    tBox.focus(); 
} 

然後從你的圖像按鈕就像打電話......

masterClick(this,'txt_rol'); 

變化tBox.value並專注於你喜歡的任何行動,但應該有機會獲得在JavaScript控制現在。你可以添加一個像「if(tBox)」的檢查來確保你有一個對象。缺點是內聯javascript內控件的靜態引用,當調用控件位於不同的容器,網格,面板等時,您必須進行調整。

+0

這不是我正在尋找的東西,但它有幫助。 – Bachask8

0

使用查看源代碼檢查輸出,您將理解什麼正在發生。您必須設置OnClientClick屬性服務器端(onload)。或者找到一種方法來綁定它OnClientClick='<%#SomeProperty%>'

另一個選擇可能是使用jQuery找到你的控制:

$("input:text[id*=txt_rol]") 

順便說一句:如果有人使用鼠標在文本框中粘貼你的JavaScript將無法正常工作(右鍵點擊/粘貼)。

相關問題