Javascript 隐藏的ASP.NET文本框值无法使用jquery

Javascript 隐藏的ASP.NET文本框值无法使用jquery,javascript,jquery,asp.net,textbox,textinput,Javascript,Jquery,Asp.net,Textbox,Textinput,我有一个ASPX页面,其中我需要将“FirstName”的值设置为“YourName”。两者都是文本框。页面上的“YourName”设置为visible=false。问题是Jquery只能工作visible=true 我的目标是用Yourname设置Firstname,条件是Yourname具有visible=false 详情如下 <asp:TextBox runat="server" ID="fnameTextBox" /> <asp:TextBox runat="serve

我有一个ASPX页面,其中我需要将“FirstName”的值设置为“YourName”。两者都是文本框。页面上的“YourName”设置为visible=false。问题是Jquery只能工作
visible=true

我的目标是用Yourname设置Firstname,条件是Yourname具有
visible=false

详情如下

<asp:TextBox runat="server" ID="fnameTextBox" />
<asp:TextBox runat="server" ID="ynameTextBox" visible="false" />

<script type="text/javascript">
    $(document).ready(function () {
        $('input:text[id*=fnameTextBox]').val($('input:text[id*=ynameTextBox]').val());
    });
</script>

$(文档).ready(函数(){
$('input:text[id*=fnameTextBox]').val($('input:text[id*=ynameTextBox]')).val();
});

我可以将“ynametextbox”中的值存储到其他类型或变量,但我不知道如何在Jquery中引用(如果可能)。

这就是控件对象的ClientID属性的用途。这为您提供了将在jQuery中使用的javascript可访问ID。引用将如下所示:

$(<%=fnameTextBox.ClientID%>)
$()

请记住,在ASP.NET服务器控件上设置Visible=“false”时,它根本不会呈现到HTML输出,因此您将无法在javascript中访问它。使用CSS属性隐藏它或将其放置在隐藏的div中。

这就是Control objects的ClientID属性的用途。这为您提供了将在jQuery中使用的javascript可访问ID。引用将如下所示:

$(<%=fnameTextBox.ClientID%>)
$()

请记住,在ASP.NET服务器控件上设置Visible=“false”时,它根本不会呈现到HTML输出,因此您将无法在javascript中访问它。使用CSS属性隐藏它或将其放置在隐藏的div中。

以下是根据要求使用
HiddenField
的示例:

Javascript:

<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script>
    $(document).ready(function () {
        $('#<%=fnameTextBox.ClientID %>').val($('#<%=hiddenTextYourName.ClientID %>').val());
    });
</script>

$(文档).ready(函数(){
$('#').val($('#').val());
});
HTML


隐藏字段当然对用户不可见,但请注意,因为他们仍然可以看到HTML中的值


祝您好运。

以下是根据要求使用
HiddenField
的示例:

Javascript:

<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script>
    $(document).ready(function () {
        $('#<%=fnameTextBox.ClientID %>').val($('#<%=hiddenTextYourName.ClientID %>').val());
    });
</script>

$(文档).ready(函数(){
$('#').val($('#').val());
});
HTML


隐藏字段当然对用户不可见,但请注意,因为他们仍然可以看到HTML中的值

祝你好运。

当我们写visible=“false”时,它不会在html中呈现。因此,javascript无法获取该元素。 请尝试style=“可见性:隐藏;”


$(文档).ready(函数(){
$('input:text[id*=fnameTextBox]').val($('input:text[id*=ynameTextBox]')).val();
});
当我们编写visible=“false”时,它将不会在html中呈现。因此,javascript无法获取该元素。 请尝试style=“可见性:隐藏;”


$(文档).ready(函数(){
$('input:text[id*=fnameTextBox]').val($('input:text[id*=ynameTextBox]')).val();
});

如果您根本不打算向用户显示此文本框,则应使用HiddenField。
Visible=false
表示该控件完全没有呈现的html,那么它只存在于服务器端。@HanletEscaño:你能提供HiddenField的示例吗?@NewCoder我已经为你创建了一个使用Asp.net HiddenField控件的示例。如果你根本不打算向用户显示此文本框,你应该使用HiddenField。
Visible=false
意味着该控件根本没有呈现的html,然后它只存在于服务器端。@HanletEscaño:您能提供HiddenField的示例吗?@NewCoder我已经用Asp.net HiddenField控件为您创建了一个示例。我尝试过用HiddenField包装它,但没有成功。你能详细解释一下如何使用ClientID以便我可以将它合并到我的代码中吗?我已经尝试过用隐藏的DIV来包装它,但没有成功。你能详细解释一下如何使用ClientID,这样我就可以将它合并到我的代码中吗?