我有这个jQuery函数正在使用另一个名为html5csv.js的jQuery库(它解释了你将看到的一些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 }
时,它就停止了工作。
我没有在我的表单中使用onsubmit
部分进行测试。
是否有人对我的表单始终提交的原因有任何建议,即使我的函数应该返回false
?
答案 0 :(得分:0)
您可以创建一个调用您的函数的按钮:
<button onclick="validateNewQuiz()">Submit</button>
...并在验证后提交表单:
function validateNewQuiz()
{
CSV.begin("#upload_csv").go(function(e,D)
{
//...
if(/^(([^,]+,){4}[^,]+\n){3}$/.test(fullString))
{
$("form").submit();
}
});
return false;
}
答案 1 :(得分:0)
onsubmit
事件处理程序允许提交在验证函数传递true
值时继续,如果收到false
值,则不允许提交继续。在您的情况下,内部函数返回true或false值,但此值未传递给外部validateNewQuiz
函数,因此验证的true / false结果未传递给{{1事件处理程序。要解决此问题,只需返回onsubmit
函数的值。
CSV