自动填充城市和州的邮政编码条目

时间:2014-05-09 18:06:30

标签: c# javascript asp.net

当我输入邮政编码时,尝试获取表单以自动填充城市和州文本框。

以下代码是我尝试使用的代码。如果我将<asp:TextBox>替换为<input type..>,则我需要使用<asp:TextBox>作为我的字段。有没有人有关于如何让这个工作的提示?

这是一个使用输入的jsfiddle:http://jsfiddle.net/7VtHc/5/

<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js">   </script>
<script type='text/javascript'>
$(window).load(function () {
    $(document).ready(function () {
        $("#zipTxtBox").keyup(function () {
            var el = $(this);
            if (el.val().length === 5) {
                $.ajax({
                    url: "http://zip.elevenbasetwo.com",
                    cache: false,
                    dataType: "json",
                    type: "GET",
                    data: "zip=" + el.val(),
                    success: function (result, success) {
                        $("#cityTxtBox").val(result.city);
                        $("#stateTxtBox").val(result.state);
                    }
                });
            }
        });
    });
});
</script>

<div class="row">
      <div class="col-xs-6">
          <asp:Label ID="Label13" runat="server" Text="Zip Code" />
          <asp:TextBox ID="zipTxtBox" runat="server" />
      </div>
      <div class="col-xs-3">
          <asp:Label ID="Label15" runat="server" Text="City" />
          <asp:TextBox ID="cityTxtBox" runat="server" />
      </div>
      <div class="col-xs-2">
          <asp:Label ID="Label16" runat="server" Text="State" />
          <asp:TextBox ID="stateTxtBox" runat="server" />
      </div>
</div>

1 个答案:

答案 0 :(得分:4)

为了使用ASP.NET服务器控件,您需要使用它们的ID(如果您看到源代码,您的文本框有一个奇怪的ID,而不是您在控件的ID属性中指定的那个)

如果您使用的是旧版本的WebForms(在.NET 3.5以下),则需要使用:

$("#<%= cityTxtBox.ClientID %>").val(result.city);
$("#<%= stateTxtBox.ClientID %>").val(result.state);
拉下邮政编码时也是如此:

$("#<%= zipTxtBox.ClientID %>").keyup( ...

如果你有一个最近的WebForms版本(.NET 4+),你需要设置ClientIDModestatic,然后就可以使用正常的代码,例如:

<asp:TextBox ID="cityTxtBox" ClientIDMode="static" runat="server" />

Scott's Guthrie blog entry

static个控件的更多内容