簡體   English   中英

驗證控件的這段代碼有什么問題?

[英]what is wrong in this code for validation of controls?

我使用jquery來驗證控件:

function RegisterClient() {
    var bookname = true; var edition = true; var author = true; var price = true; var imgType = true; var imgSize = true;

    if (j('#txt_book_name').val() === null) {   //1
        j('#alertBookName').removeClass('hidden');
        bookname = false;
    }
    if (j('#txt_edition').val() === null) {     //2
        j('#alertEditionbook').removeClass('hidden'); edition = false;
    }
    if (j('#txt_author').val() === null) {       //3
        j('#alertAuthor').removeClass('hidden'); author = false;
    }
    if (j('#txt_price').val() === null) {        //4
        j('#alertPrice').removeClass('hidden'); price = false;
    }
    var fileType = j("#ContentPlaceHolder1_FileUpload1").val().split('.').pop().toLowerCase();
    if (j('#ContentPlaceHolder1_FileUpload1').val() != "" && j.inArray(fileType, ['gif', 'png', 'jpg']) == -1)
    { j('#alertImgType').removeClass('hidden'); imgType = false; }
    if (j('#ContentPlaceHolder1_FileUpload1').val() != null) {
        var sizeImg = j("#ContentPlaceHolder1_FileUpload1")[0].files[0].size/1024;
        if (sizeImg > 25) { j('#alertImgSize').removeClass('hidden'); imgSize = false; }
    }
    if (bookname && edition && author && price && imgType && imgSize) __doPostBack('ctl00$ContentPlaceHolder1$Button1', '');

}
  1. 在第1,2,3,4節中, (j('#txt_...').val() === null)語句無法正常工作。

  2. (var sizeImg = j("#ContentPlaceHolder1_FileUpload1")[0].files[0].size/1024;)語句出錯,在使用Firebug時顯示。 我可以使用Alert()顯示j("#ContentPlaceHolder1_FileUpload1")[0].files[0].size ,但是有錯誤。

關於第一個問題:

唯一可能的是,如果條件在用戶輸入任何內容之前被執行。

我做了一個小提琴來解釋它:

https://jsfiddle.net/tr91Lw7y/

運行此命令,您將立即看到“ johndoe”。

但是,如果運行此命令:

http://jsfiddle.net/6mjgx2r4/

每次執行此操作時,您都會看到空白。

如果您無法調整流量,則有一種解決方案:

$("#txt_book_name").keyup(function(){
        if($(this).val() === null) {
         // Conditions
        }
});

暫無
暫無

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

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