我有一個使用另一個jQuery庫稱爲html5csv.js這個jQuery的功能(這也解釋了一些東西,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
?
您從傳入'go()'的回調函數返回'true'或'false',所以'validateNewQuiz'實際上返回undefined。如果CSV庫是異步的(看起來像這樣),您將無法在onsubmit處理程序中以這種方式使用它。 –
no preventDefault –
@MattGreer - 你有其他的選擇嗎?我需要在Javascript發佈到我的'PHP'之前用Javascript驗證我的表單客戶端。 – Fizzix