如何在输入和asp:文本框控件之间交换值

时间:2015-03-01 10:02:27

标签: javascript asp.net

如何使用这样的东西:

<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。 我错了什么?

1 个答案:

答案 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" ... />。此渲染(转换)过程发生在服务器端