Jquery: Какое событие Должны ли мы назвать в этой ситуации для элемента - PullRequest
0 голосов
/ 10 ноября 2010

У меня есть форма "B", где мы получаем все детали для элементов из формы "A", я имею в виду, что потоки запросов переходят от "A" к "B". Для одного элемента нам нужно вызвать вызов Ajax-запроса и получитьСвязанные детали.Теперь мы отправляем ajax-запрос на событие «change».Какое событие нужно использовать, чтобы удовлетворить оба. Можем ли мы использовать onload, изменить. Не получилось

$("#txt1").bind('change load', function() {
    var dstvalue = $("#txt1").val();
    if (dstvalue.length < 3) {
        $("#err").text("characters");
    }
    $.ajaxSetup({
        cache: false
    });
    $.getJSON("ajax.php", {
        'term': $("#txt1").val()
    }, function(data) {
        $("#err").text($.trim(data[0].label));
    });
});

Ответы [ 3 ]

1 голос
/ 10 ноября 2010

Вы можете вызвать обработчик .change() сразу после его добавления в обработчик ready, чтобы удовлетворить событие load, например:

$.ajaxSetup ({ cache: false});
$(function() {
  $("#txt1").change(function(){
    var dstvalue = $(this).val();
    if(dstvalue.length < 3) {
      $("#err").text("characters");
    }
    $.getJSON("ajax.php",{'term' : dstvalue}, function (data) {
        $("#err").text($.trim(data[0].label));
    });
  }).change(); //call it on ready
});
0 голосов
/ 10 ноября 2010

Если вы связываете события с вводом типа «текст», он не имеет onLoad, поэтому вы не можете связать. Вместо этого вы можете связать его с фокусом, это происходит, когда вход получает фокус.

Если вы хотите отправить Ajax, когда документ готов, вместо этого следует использовать $ (document) .ready ().

0 голосов
/ 10 ноября 2010

Итак, я понимаю, вы хотите запустить ajax-запрос один раз при загрузке страницы, и снова, если значение # txt1 изменяется?

Как насчет этого:

$(document).ready(function() {
    function getDetails() {
        var dstvalue = $("#txt1").val();
        if (dstvalue.length < 3) {
            $("#err").text("characters");
        }
        $.ajaxSetup({ cache: false });
        $.getJSON("ajax.php", { 'term': $("#txt1").val() }, function(data) {
            $("#err").text($.trim(data[0].label));
        });
    }

    $("#txt1").change(getDetails);
    getDetails();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...