Ошибка JavaScript говорит: «Подтверждение не является функцией» - PullRequest
6 голосов
/ 09 ноября 2011

Я использую jQuery с плагином проверки при отправке формы:

$('.frmProject:visible').validate( {

    errorContainer: ".site_details:visible .messageBox1",
    errorLabelContainer: ".site_details:visible .messageBox1 span.messagehere",
    invalidHandler: function(form, validator) {
    },

    rules: {
        site_id: {
            required: true,
        }
    },
    messages: {
        site_id: "Project has no assigned site information. Click the marker on the map at left to specify the site where this project took place."
    },
    submitHandler: function(data) {
        SaveProject();
    }

});

В submitHandler,

function SaveProject(){
    //... load variables with input contents
    $.ajax({
        url: 'ajax/save_project.php',
        dataType: 'json',
        data: 'id='+id+'&title='+title+'&project='+project+'&sector='+sector+'&volunteer='+volunteer+'&lat='+lat+'&lng='+lng+'&name='+name+'&mun='+mun+'&prov='+prov,
        success: function(data) {
            //... load 'messages' object with stuff
            $.each(messages, function(key, value) {
                if (confirm(key)){
                    console.log(item);
                }
            });
        }
    });
}

Когда я отправляю проверенную форму, и она получает подтверждение внутри каждого цикла, я получаю сообщение об ошибке: «Подтверждение не является функцией».

Как мне отправить сообщение пользователю для подтверждения?

Edit:

Когда я набираю «подтвердить» в консоли, я получаю это:

Screen capture of console output

Проверка в DOM показывает:

окно> подтвердить () У этого объекта нет свойств.

Проверка в скрипте переводит меня в jquery-1.6.2.min.js

Ответы [ 3 ]

17 голосов
/ 09 ноября 2011

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

16 голосов
/ 09 ноября 2011

Метод подтверждения является частью объекта окна.

if (window.confirm(key)){
    console.log(item);
}
0 голосов
/ 10 апреля 2019

Я использую и jquery Подтверждение, и datatables, в моем случае «datatables» следует импортировать перед «jquery Подтверждение».

Так что, в некоторых случаях, попробуйте ReOrder ........

...