以下验证会正确验证代码并提供警报..但是,一旦您关闭了警报并想继续操作,则无法执行,因为它会自动刷新,我不希望页面刷新只是显示警报,并让用户编辑自己的信息:自定义JS验证无法正常工作
http://jsfiddle.net/PKLQn/114/
HTML:
<form name="fff1" onsubmit="return newfuncion();">
<input type="text" id="email" />
<input type="text" id="title" />
<input type="text" id="url" /><br><br>
<input type="file" id="flUpload" /><br/><br>
<input type="submit" value="CONTINUE" />
</form>
JAVASCRIPT:
function Checkfiles() {
var fup = document.getElementById('flUpload');
var fileName = fup.value;
var ext = fileName.substring(fileName.lastIndexOf('.') + 1);
var chkext = ext.toLowerCase();
if(chkext=="gif" || chkext=="jpg" || chkext=="jpeg" || chkext=="png") {
return true;
}
else { return false; }
} // Checfiles
function Checksize() {
var iSize = ($("#flUpload")[0].files[0].size/1024);
alert(iSize);
if(Checkfiles()==true) {
alert("Checkfiles function works properly!");
if (iSize < 2097152.00) {
alert("It's smaller than 2 megabytes, proceed..");
return true;
}
else{
alert("It's bigger than 2mb, submit an smaller file!");
return false;
}
} else { alert("Upload GIF, PNG, JPG Images only"); return false; }
} //Checksize
function Checkfields() {
var error="";
// Validate Email
var email = $("#email").val();
if (/(.+)@(.+){2,}\.(.+){2,}/.test(email)) { } else { error += "- Please enter a valid email address.\n"; }
// Validate Title
var title = $("#title").val();
if (title=="" || title==null) { error += "- Please enter a valid title for your advertisement.\n"; }
// Validate URL
var url = $("#url").val();
if (/^(http[s]?:\/\/){0,1}(www\.){0,1}[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,5}[\.]{0,1}/.test(url)) { } else { error += "- Please enter a valid URL."; }
if(error!=""){alert(error); return false;} else {return true;}
}// Checkfields
function newfuncion() {
var fields = Checkfields();
var size = Checksize();
var files = Checkfiles();
if(fields==true && size==true && files==true) {
alert("Code works, now proceed to .php page!");
return true;
} else {
alert("Something's wrong, check your code!");
return false;
}
} // Use all functions
难怪有什么不对?提前致谢。
你是什么意思是“要继续”吗?您是否期望服务器执行重定向?如果没有,那么它会正确刷新页面。 – grasp 2013-04-24 22:06:40
不要使用空的if块,而是反转条件。不要比较布尔值与'true',只是*使用*他们 – Bergi 2013-04-24 22:08:04
...我不确定你的意思是“如果存在警报”。你的'if()'语句对这个条件的两个结果都有警报,所以你不管发生什么都会收到警报。如果你总是想阻止提交,那么将'return true;'改为'return false;' – grasp 2013-04-24 22:08:43