如何从javascript获取gridview中的文本框的客户端ID

时间:2012-11-28 20:35:11

标签: javascript gridview javascript-events textbox

我一整天都遇到过这个问题,我几乎看到每个论坛/页面上的每个帖子都有,而且我找不到解决问题的方法。在我的解释中,我将尽可能简洁和准确。

我想要的很简单,我想将txtBox1中输入的数字动态复制到txtBox2中。这两个txtBox都位于一个Table里面,它位于一个GridView内的TemplateField中。 txtBox1使用onkeydown事件调用JavaScript numericOnly函数。当用户输入一个数字时,numericOnly函数触发,就在返回true子句之前,我调用另一个JavaScript函数,它应该从txtBox1中输入的数字到txtBox2进行动态复制。

这里的问题是每当我尝试使用

document.getElementById('<%= txtDeathPremiumDifference.ClientID %>');

页面抛出"The name txtDeathPremiumDifference does not exist in the current context"错误。

我必须坚持,我已经尝试过一切,即使是这样我也可以上网:

document.getElementById(''<%# ((GridViewRow)Container')
        .FindControl("txtDeathPremiumDifference").ClientID %>'')
        .value="Hi";

但没有任何效果。

底线我需要能够访问我的文本框的值,以便我可以修改他们持有的任何内容。

这是"txtBox1"实际上并没有这样调用,但你明白了这一点:

TextBox ID="txtDeathBankPremium" runat="server" CssClass="TexboxInput"
     MaxLength="17" Width="122px" onkeydown="return isNumericKey(event);"

这里是JS函数:

function isNumericKey(e)
        {
            var charInp = window.event.keyCode; 
            if (charInp > 31 && (charInp < 48 || charInp > 57)) 
            {
                return false;
            }
            ComputePremiumDifference(charInp);
            return true;
        }

        function ComputePremiumDifference(input) {
            document.getElementById('<%= txtDeathPremiumDifference.ClientID %>')
                    .value="Hi";
        }

1 个答案:

答案 0 :(得分:0)

使用“&lt;%= txtDeathPremiumDifference.UniqueID%&gt;”在你的js函数中。 希望它能奏效。