无法在javascript中获取html文本框的值
本文关键字:文本 html 获取 javascript | 更新日期: 2023-09-27 18:06:31
伙计们,我在我的代码中有一个问题,我想在javascript中获得html输入类型文本框的值,并将值分配给隐藏字段。之后,我想使用隐藏字段值在代码后面的文件在c#,但隐藏字段总是包含空字符串,即使输入类型文本框包含值。Java脚本:
<script type ="text/javascript" >
function myFunction() {
var str1 = document.getElementById("amt3").value;
var str2 = document.getElementById("amt4").value;
document.getElementById("hf1").value = str1;
document.getElementById("hf2").value = str2;
}
</script>
我的HTML:
<div class="form-row row-fluid">
<div class="span12">
<div class="row-fluid">
<label class="form-label span4" for="slider">
Range slider</label>
<div class="span8">
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate >
<asp:HiddenField ID="hf1" runat="server" />
<asp:HiddenField ID="hf2" runat="server" />
<div id="slider-range" class="slider" >
</div>
<input type="text" id="amount1" style="border: 0; color: #ED7A53; font-weight: bold;
box-shadow: none;" />
<input type="text" id="amt3" value="10" runat="server" style="border: 0; color: #ED7A53; font-weight: bold;
box-shadow: none;" />
<input type="text" id="amt4" value="20" runat="server" name="amt4" style="border: 0; color: #ED7A53;
font-weight: bold; box-shadow: none;" />
<asp:LinkButton ID="lnk" runat="server" onclick="lnk_Click" OnClientClick ="myFunction()">LinkButton</asp:LinkButton>
</ContentTemplate>
</asp:UpdatePanel>
您必须在javascript中使用ClientID,因为如果ClientIDMode未设置为static,则服务器控件的id(具有runat="server"属性)将在生成的html中更改。
var str1 = document.getElementById("<%= amt3.ClientID %>").value;
var str2 = document.getElementById("<%= amt4.ClientID %>").value;
document.getElementById("<%= hf1.ClientID %>").value = str1;
document.getElementById("<%= hf2.ClientID %>").value = str2;
As 隐藏字段和文本框都是服务器端控件,因此应该使用clientid作为
访问它们 var str1 = document.getElementById("<%= amt3.ClientID %>").value;
var str2 = document.getElementById("<%= amt4.ClientID %>").value;
document.getElementById("<%= hf1.ClientID %>").value = str1;
document.getElementById("<%= hf2.ClientID %>").value = str2;
工作示例:
我稍微修改了一下,使它可以在没有asp控件的情况下工作。
http://jsbin.com/aqayan/1/你的问题是服务器端vs客户端id,你必须确保在浏览器中所有的id都是正确的。打开Chrome web工具,手动检查元素是否具有您认为它们在控制台中的id。