Мой AJAX стреляет только один раз, - PullRequest
2 голосов
/ 12 апреля 2010

У меня есть некоторый ajax, который запускается при нажатии флажка, он, по сути, отправляет строку запроса в скрипт PHP, а затем возвращает соответствующий HTML, однако, если я выбираю select, он работает нормально, если затем я выбираю другой флажок как как и предыдущий, я не проявляю никакой активности, даже ошибок в firebug, очень любопытно, у кого-нибудь есть идеи?

//Location AJAX
//var dataObject = new Object();
var selected = new Array();
//alert(selected);
$('#areas input.radio').change(function(){ // will trigger when the checked status changes
    var checked = $(this).attr("checked"); // will return "checked" or false I think.
    // Do whatever request you like with the checked status
    if(checked == true) {
        //selected.join('&');
        selected = $('input:checked').map(function() {
            return $(this).attr('name')+"="+$(this).val();
        }).get();

            getQuery = selected.join('&')+"&location_submit=Next";
            alert(getQuery);
            $.ajax({
                type:"POST",
                url:"/search/location",
                data: getQuery,
                success:function(data){
                    //alert(getQuery);
                    //console.log(data);
                    $('body.secEmp').html(data);
                }
            });
    } else {
        //do something to remove the content here
        alert($(this).attr('name'));
    }
});

Ответы [ 2 ]

3 голосов
/ 12 апреля 2010

Я вижу, вы используете переменную checked = $ (this) .attr ("флажок"); Я думаю, что это может быть проблемой, потому что флажок - это стандартный атрибут JS, свойственный JS. Вы можете сравнить проверено нормально на элементе и посмотреть, является ли он истинным или ложным. Я хотел бы начать с изменения имени вашей переменной и двигаться дальше.

Другая вещь, которая может произойти, это то, что вы можете потерять слушателя, что может быть вызвано выбранной вами переменной. Вам не нужно объявлять выбранное за пределами вашего слушателя. Просто объявите это внутри, когда вы установите его.

И если ЭТО не помогает, предоставление некоторой разметки поможет отладить эту проблему, потому что кажется, что здесь многое происходит.

Удачи.

0 голосов
/ 13 апреля 2010

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

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