Неопределенное значение, установленное предыдущим событием Jquery - PullRequest
0 голосов
/ 17 сентября 2018

Я пытаюсь опубликовать форму с динамическим заданным значением в событии клика, получив неопределенное изменение. Вот мой код.

$( ".paymentselect" ).click(function() {
    var bookingid=$(this).data('id');
    $('#paymentstats').css('display','block');
    $('#paymentform').attr('action', document.location.origin +"/accounts/" + bookingid);

});

$('#paymentform').submit(function(event){
        event.preventDefault();

        var data=$('#paymentform').serialize();
        $.ajax({
            url: $(this).attr('action'),
            method: 'POST',
            data: data,
            beforeSend: function() {
                            // setting a timeout
                        $('#wait').html('<i class="material-icons">cached</i>');
                        },
            success: function(data){
                        if(data.status){
                            $('#paymentstats').css('display','none');
                            alert("UPDATED");
                            //location.reload();
                        }else
                        {
                            alert("something went wrong");
                        }
                        }
        });
});

На POST bookingid Не определено. Маленькая Помощь будет оцененаЗапрошенный выше мой HTML-код как и просили.Я УЖЕ ПОПРОБОВАЛ НАСТРОЙКУ bookingpaymentid Val при событии щелчка, но также отображается значение Не определено, когда форма POST на сервере.

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

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

В плункере bookingid не является неопределенным. Перейдите на plunker address и проверьте консоль браузера, чтобы увидеть значения переменной.

Возможно, у вас возникли проблемы с загрузкой порядка файлов scripts. Как вы можете видеть в plunker, убедитесь, что вы загружаете свои js коды конца тега body.

0 голосов
/ 17 сентября 2018

Потому что вы объявляете bookingid внутри $( ".paymentselect" ).click(function() {. Вы можете попробовать это:

var bookingid = null;
$( ".paymentselect" ).click(function() {
    bookingid=$(this).data('id');
    $('#paymentstats').css('display','block');
    $('#paymentform').attr('action', document.location.origin +"/accounts/" + bookingid);
});
...