页面加载时为文本框触发/绑定jQuery事件

3

我在view1中有一个邮政编码文本框,当用户输入邮政编码并单击“下一步”以添加更多详细信息时,我会从view1传递邮政编码到view2。在view2中,我需要根据输入的邮政编码显示州和城市。我使用keyup来获取基于输入的邮政编码的城市和州。当我在view2中更改邮政编码时,它可以正常工作。但是,当我从view1到view2时,它就不起作用了。我需要在页面加载时触发邮政编码文本框的事件,也就是说在从view1传递邮政编码到view2时。现在,当我从view1到view2时,只有邮政编码显示在相应的文本框中,城市和州字段不显示任何内容。我该如何触发邮政编码文本框的事件或者绑定到现有事件上?

$(document).ready(function ()
        {
            $("#zip").keyup(function () {
                var el = $(this);

                if (el.val().length === 5) {
                    $.ajax({
                        type:'GET',
                         dataType: "json",
                        cache: true,
                        url: "../api/Getstatelist/" + el.val(),
                        success: function (html) {
                            $.each(html,function(key,value){
$('#state').append($('<option></option>').val(value.State).html(value.State));
});
$.each(html,function(key,value){
$('#city').append($('<option></option>').val(value.City).html(value.City));
});
                        }
                    }); 
                }
            });
  });
<div>
            <div class="city-wrap">
                <select id="city">
                    <option value="">Select City first</option>
                </select>
                <label for="city">City</label>
            </div>
            <div class="state-wrap">
                <select id="state">
                    <option value="">Select State </option>
                </select>
                <label for="state">State</label>
            </div>
            <div class="zip-wrap">
               @Html.TextBoxFor(model => model.Zip, new { @class = "form-control", @id = "zip", @name = "zip" })
                <label for="zip">Zip</label>

            </div>
        </div>

1个回答

0

我找到了解决方案。像下面这样添加了加载函数。我不确定这是否是正确的方法。任何建议都将很有帮助。

  $( window ).on( "load", function() {
    var val = $('#zip').val();
if (val.length === 5) {
                    $.ajax({
                        type:'GET',
                         dataType: "json",
                        cache: true,
                        url: "../api/Getstatelist/" + val,
                        success: function (html) {
                            $.each(html,function(key,value){
 $('#state').append($('<option></option>').val(value.State).html(value.State));
});
$.each(html,function(key,value){
$('#city').append($('<option></option>').val(value.City).html(value.City));
});
                        }
                    }); 
                }

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接