如何使用这样的东西:
<asp:TextBox ID="txt_place_name" CssClass="form-control ltr" ValidationGroup="add" runat="server"></asp:TextBox>
<input type="text" id="txt_newpl" value="placeName" runat="server" />
和javascript代码是:
<script>
var tmp = document.createElement("input");
tmp.appendChild(document.getElementById('txt_newpl'));
google.maps.event.addListener(marker, "click", function (e) {
var infoWindow = new google.maps.InfoWindow({
content:
'<div>'+tmp.innerHTML+'</div>'
})
});
document.getElementById("<%= txt_place_name.ClientID%>").value = txt_java.value;
</script>
我想将txt_newpl的值传递给txt_place_name。 我错了什么?
答案 0 :(得分:0)
我认为你做错了。您创建元素输入,然后将文本框附加,之后您尝试获取元素输入值(txt_java.value
),这是错误的,你想要文本框的值(document.getElementById('txt_newpl').value
)。
<script>
// .. rest of the code ...
document.getElementById("<%= txt_place_name.ClientID%>").value = document.getElementById('txt_newpl').value;
</script>
另外,如果您将<asp:TextBox ... />
添加到要完成的信息窗口,这样会很容易。通过这种方式,您可以通过不必要的值交换来使代码复杂化。
<asp:TextBox ID="txt_place_name" CssClass="form-control ltr" ValidationGroup="add" runat="server"></asp:TextBox>
<script>
var tmp = document.createElement("input");
tmp.appendChild(document.getElementById("<%= txt_place_name.ClientID %>"));
google.maps.event.addListener(marker, "click", function (e) {
var infoWindow = new google.maps.InfoWindow({
content:
'<div>' + tmp.innerHTML + '</div>'
})
});
</script>
您可以这样做,因为<asp:TextBox .../>
控件将呈现给html元素<input type="text" ... />
。此渲染(转换)过程发生在服务器端。