событие jquery триггера / связывания для текстового поля при загрузке страницы - PullRequest
3 голосов
/ 25 апреля 2019

У меня появляется текстовое поле с почтовым индексом в 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 голосов
/ 26 апреля 2019

Я разобрался с решением.Добавлена ​​функция загрузки, как показано ниже.Я не уверен, что это правильный путь.Любые предложения будут полезны.

  $( 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));
});
                        }
                    }); 
                }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...