У меня есть эта функция JQuery, который использует другой JQuery библиотеки под названием html5csv.js (который объясняет некоторые вещи, CSV вы увидите)Почему моя функция jQuery не называется правильно?
Вот он:
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 }
, он перестает работать.
Я не делал своих тестов с частью onsubmit
в моей форме.
Есть ли у кого-нибудь предложения, почему моя форма всегда отправляется, даже когда моя функция должна возвращаться false
?
Вы возвращаете 'true' или' false' из функции обратного вызова, которая передается в 'go()', поэтому 'validateNewQuiz' фактически возвращает undefined. Если библиотека CSV асинхронна (и выглядит так, как есть), вы не сможете использовать ее таким образом в обработчике onsubmit. –
no preventDefault –
@MattGreer - Есть ли у вас другие альтернативы? Мне нужно проверить мою клиентскую часть формы с Javascript, прежде чем она будет отправлена на мой 'PHP'. – Fizzix