我整天都在遇到这个问题,并且几乎在每个论坛/页面上都看到过每篇文章,而我没有找到解决问题的方法。在我的解释中,我将力求尽可能简短和准确。

我想要的很简单,我想将txtBox1中输入的数字动态复制到txtBox2中。这两个txtBox都在Table内,而Table在GridView内的TemplateField内。 txtBox1使用onkeydown事件调用JavaScript numericOnly函数。当用户输入数字时,将触发numericOnly函数,并且在return 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";
        }

最佳答案

在您的js函数中使用“ ”。
希望它能工作。

09-27 16:18