以下驗證會正確驗證代碼並提供警報..但是,一旦您關閉了警報並想繼續操作,則無法執行,因爲它會自動刷新,我不希望頁面刷新只是顯示警報,並讓用戶編輯自己的信息:自定義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