簡體   English   中英

自定義JS驗證無法正常工作

[英]Custom JS validation not working properly

以下驗證可以正確驗證代碼並提供警報..但是一旦你關閉警報並希望繼續,你就不能因為它刷新自己,我不希望頁面刷新只是顯示警報並讓用戶編輯他們的信息:

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

不知道有什么不對嗎? 提前致謝。

您的Javascript中存在錯誤:

var iSize = ($("#flUpload")[0].files[0].size / 1024);

如果沒有文件,則在訪問size屬性時會出錯。

你需要先做一個檢查:

var iSize;
if ($("#flUpload")[0].files[0]){
    iSize = ($("#flUpload")[0].files[0].size / 1024);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM