Почему моя функция jQuery / Javascript неправильно вызывается с помощью onsubmit?

У меня есть эта функция jQuery, которая использует другую библиотеку jQuery под названием html5csv.js (которая объясняет некоторые вещи CSV, которые вы увидите)

Вот:

function validateNewQuiz()
{
    CSV.begin("#upload_csv").go(function(e,D)
    { 
        if (e) 
        {
            return console.log(e); 
            alert("Sorry, an error occured");
        }

        var s = "";


        for (var i = 0; i <= D.rows.length - 1; i++) 
        {
            s +=D.rows[i].join(',');
            s += "\n";
        }

        var fullString = s;

        if(/^(([^,]+,){4}[^,]+\n){3}$/.test(fullString))
        {
            return true;
        }
        else
        {
            return false;
        }

    });
}

Вот как я пытаюсь вызвать мою функцию изonsubmit в моей форме:

<form method="post" action="createplay.php" onsubmit="return validateNewQuiz();" enctype="multipart/form-data">

Моя функция была тщательно протестирована, наряду с моим регулярным выражением, чтобы убедиться, что она работает. Когда я решил внедрить это в свой большой документ, и обернуть его вокругfunction validateNewQuiz(){ //my function here } перестал работать.

Я также не проводил тесты с отправляемой частью в моей форме.

Я попытался исправить это двумя способами. Один из способов был таким, разделив их на две функции:

var fullString = "";
CSV.begin("#upload_csv").go(function(e,D)
{ 
    if (e) 
    {
        return console.log(e); 
        alert("Sorry, an error occured");
    }

    var s = "";


    for (var i = 0; i <= D.rows.length - 1; i++) 
    {
        s +=D.rows[i].join(',');
        s += "\n";
    }

    fullString = s;
});


function validateNewQuiz()
{
    if(/^(([^,]+,){4}[^,]+\n){3}$/.test(fullString))
    {
        return true;
    }
    else
    {
        return false;
    }
}

И второй способ, добавивreturn за пределами CSV-части:

var fullString = "";
function validateNewQuiz()
{
    CSV.begin("#upload_csv").go(function(e,D)
    { 
        if (e) 
        {
            return console.log(e); 
            alert("Sorry, an error occured");
        }

        var s = "";


        for (var i = 0; i <= D.rows.length - 1; i++) 
        {
            s +=D.rows[i].join(',');
            s += "\n";
        }

        fullString = s;
    });

    if(/^(([^,]+,){4}[^,]+\n){3}$/.test(fullString))
    {
        return true;
    }
    else
    {
        return false;
    }
}

Есть ли у кого-нибудь предложения, почему моя форма всегда отправляется, даже если моя функция должна возвращаться?false?

Вот еще одно редактирование, которое я пытался сделать, хотя оно все еще отправляется на мой PHP иconsole сообщения не отображаются, поскольку эта страница отправляется в PHP, поэтому происходит перезагрузка

jQuery("#newQuizID").click(function(e)
{
    e.preventDefault();

    CSV.begin("#upload_csv").go(function(e,D)
    { 
        if (e) 
        {
            return console.log(e); 
            alert("Sorry, an error occured");
        }

        var s = "";


        for (var i = 0; i <= D.rows.length - 1; i++) 
        {
            s +=D.rows[i].join(',');
            s += "\n";
        }

        var fullString = s;

        if(/^(([^,]+,){4}[^,]+\n){3}$/.test(fullString))
        {
            console.log("Working");
            jQuery("#form-step2").submit();
        }
        else
        {
            console.log("Not Working");
        }

    });
});

Ответы на вопрос(1)

Ваш ответ на вопрос