2011-09-19 83 views
0

我正在嘗試做一個表單驗證它是檢查未填寫的條目。在我的形式中,我有投入,文字和選擇。我能夠得到輸入驗證的工作,但我無法讓textarea工作(我甚至沒有嘗試過select。)。這裏是我的代碼:jquery引用textarea中的空白值

$(document).ready(function(){ 
$('input[type=submit]').click(function() 
{ 
    if(($(":text:not(:disabled)[value='']").length !== 0) || $(textarea).html == '') 
    { 
     //$('#message').parents('p').addClass('warning'); 
     var happy = "happy"; 
     document.getElementById("message").innerHTML = "All entries must be completed"; 
     //var cool = document.getElementById(id).attributes.getNamedItem("value").nodeValue; 
     alert('All Entries Must Be Completed'); 
     return false; 
    } 
    else 
    { 
     alert ('mess up'); 
     return false; 
    } 

});          

});

我該如何做選擇呢? 此外,我只能從另一個stackoverflow帖子的幫助中獲得第一部分的工作,但我意識到後綴,我不知道它爲什麼會起作用。爲什麼當if語句不等於零(!==)時,我會執行if語句?當它等於零時,我不應該這樣做嗎?

回答

0

對於文本框和文本區,您應該使用.val()$.trim來檢查空白值。對於例如,

if($.trim($("#textboxid").val()) == "") { 
    //do something 
} 

對於選擇,如果您使用以下版本的jQuery 1.6使用.attr,否則使用.prop()獲得選擇輸入的選擇指標。對於例如,

jQuery的< 1.6

if($("#selectid").attr("selectedIndex") <= 0) { 
    //do something 
} 

的jQuery> = 1.6

if($("#selectid").prop("selectedIndex") <= 0) { 
    //do something 
} 
+0

完美!非常感謝。但是,你能解釋一下爲什麼你需要.trim嗎? – Joseph

+0

'trim'用於在傳遞值之前或之後刪除空格。當檢查空白值時這很重要,因爲如果用戶只是在沒有輸入任何值的情況下點擊空格(空格鍵),並且只檢查'$(「#textboxid」).val()==「」',會超過你的驗證。 '$ .trim'確保在評估值之前刪除空的空格。希望你明白我的觀點。 –