如何从分配的隐藏字段值中获取文本框值

时间:2011-07-25 12:49:18

标签: javascript asp.net

我已经编写了以下脚本,当文本框在点击标签上为空时,将隐藏字段的值设置为文本框,但它不起作用,所以任何人都可以告诉我这里的错误

<script type="text/javascript">
        function Tab() {
            var PayDate = document.getElementById('txtDate').value;
            var hdn1 = document.getElementById('hdn1');
            if (PayDate == null) {
                // Retreive the    next field in the tab sequence, and give it the focus. 
                document.getElementById('txtDate').value = hdn1.value;
            }
        }
    </script>

<asp:HiddenField ID="hdn1" runat="server" />
        <asp:TextBox ID="txtDate" runat="server" onChange="Tab();"></asp:TextBox>
        <asp:Button ID="btn" runat="server" Text="Button" />

在我的页面加载中,我写了

if (!IsPostBack)
        {
            hdn1.Value = "1-2-2001";
        }

但我没有得到分配给文本框的隐藏字段的值,当我点击标签可以任何人帮助我

5 个答案:

答案 0 :(得分:4)

我认为当你获得文本框和隐藏字段时需要服务器标记,因为它们是通过ID在服务器上运行的

<script type="text/javascript">
    function Tab() {
        var PayDate = document.getElementById('<%= txtDate.ClientID %>').value;
        var hdn1 = document.getElementById('<%= hdn1.ClientID %>');
        if (PayDate == '') {
            // Retreive the    next field in the tab sequence, and give it the focus. 
            document.getElementById('<%= txtDate.ClientID %>').value = hdn1.value;
        }
    }
</script>

    <asp:HiddenField ID="hdn1" runat="server" />
    <asp:TextBox ID="txtDate" runat="server" onChange="Tab();"></asp:TextBox>
    <asp:Button ID="btn" runat="server" Text="Button" />

答案 1 :(得分:0)

付款日期可能只是空或“未定义”

        if (PayDate == '' || PayDate == 'undefined') {
            // Retreive the    next field in the tab sequence, and give it the focus. 
            document.getElementById('txtPaymentDate').value = hdn1.value;
        }

答案 2 :(得分:0)

由于您的隐藏字段将RunatServer属性设置为true,因此其真正的ClientID可能不是“hdn1”。如果您使用的是4.0,则可以设置ClientIDMode =“Static”,使其始终为“hdn1”,或者您可以在javascript中使用服务器标签并使用ClientID属性,或使用Jquery选择器轻松获取对隐藏值的引用。

答案 3 :(得分:0)

  <script type="text/javascript">        function Tab() {
            var PayDate = document.getElementById('<%= txtDate.ClientID %>').value;
            var hdn1 = document.getElementById('<%= hdn1.ClientID %>');
            if (PayDate == '') {
                // Retreive the    next field in the tab sequence, and give it the focus.
                document.getElementById('<%= txtDate.ClientID %>').value = hdn1.value;
            }
        } </script>

<asp:TextBox ID="txtDate" runat="server" onBlur="Tab();"></asp:TextBox> or <asp:TextBox ID="txtDate" runat="server" onKeyUp="Tab();"></asp:TextBox>

答案 4 :(得分:0)

尝试使用非首都'c'的onchange事件,在if条件下,测试必须是空字符串,如PayDate ==''