0

这是我的控制:

 <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。

4

3 回答 3

0

使用 View Source 检查输出,您将了解发生了什么。您必须设置OnClientClick属性服务器端 ( onload)。或者想办法绑定它OnClientClick='<%#SomeProperty%>'

另一种选择可能是使用 jQuery 来查找您的控件:

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

顺便说一句:如果有人使用鼠标(右键单击/粘贴)在文本框中粘贴,您的 JavaScript 将无法工作。

于 2013-10-04T17:31:50.373 回答
0

好吧,我可以马上告诉你代码中存在语法问题。它应该是:

'<%= txt_rol.ClientID %>'

您可能还需要在这里克服其他障碍。例如,如果这些控件嵌套在 a 中,GridView您将无法以这种方式引用该控件。

于 2013-10-04T15:45:11.293 回答
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 中控件的静态引用,当调用控件位于不同的容器、网格、面板等中时,您必须进行调整。

于 2013-10-04T17:02:31.407 回答