TypeError: f [s] не является функцией для отправки формы jquery

Я пытаюсь получить форму для отправки по круговому пути, так как мне нужно, чтобы она добавляла новые входы, прежде чем она отправится. Поскольку добавление append в фактическую функцию $(form).submit() не будет собирать их для сообщения, я добавил кнопку html для вызова submitCheck(), а затем отправьте фактическую функцию.

function init() {
  $("#submit").click(submitCheck);
  //and lots of other stuff
}

function submitCheck() {
    //go through fabric canvases, save xml to input.
    for (var i=1; i<probNum; i++) {
        var csvg = gcanvas[i].toSVG();
        $('#output').append("<input type='hidden' name='svg"+probNum+"' value='"+csvg+"'></input>");
    }
    //make sure a topic was selected. If not cancel submission and don't do anything.
    if ($("#topic").val() == '-1') 
    {
        $('#error').html("You must select a valid topic");
    } else {
        //submit the form
        alert('should submit now');
        $("form:first").submit();
    }
}

Но... он терпит неудачу, бросая ошибку типа:

TypeError: f[s] is not a function

Я не нашел документации по этой конкретной ошибке. Любые идеи?

Ответ 1

У вас есть ввод с name="submit" в вашей форме, который переопределяет встроенный метод form.submit (программно представляет форму), который внутренне вызывается в jQuery. Вам нужно изменить это на другое имя.

См. раздел Дополнительные примечания в документации.

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