2010-03-06 22 views
2

我有一個表格,其中我有30個輸入框和10個文本區域和3個選擇框(更新)字段和所有是必填字段。所有輸入字段驗證通過單個/最小線上代碼與jQuery

我如何通過的jQuery/JavaScript的應用驗證一起爲所有輸入字段,它can't be blank/empty/NULL.

我不想每次使用的每個輸入框的ID,併爲每一個輸入框和文本區的獨立驗證。

如果任何輸入欄爲空白,它的邊框變成紅色,當使用去寫東西,然後趨於正常(無邊框即刪除類)

UPDATE

還有一些選擇箱子..我如何一起驗證它們?

回答

2
  1. 從每個文本, textarea和列表框內取出紅色的邊框。
  2. 過濾掉包含至少1 非空白字符 元素 - \ S +
  3. 添加紅色 邊界到剩餘的元素

的javascript

function validate() { 
    return $("input:text,textarea,select").removeClass('blank').filter(function() { 
    return !/\S+/.test($(this).val()); 
    }).addClass('blank').size() == 0; 
} 

$('#form').submit(validate); 

CSS

.blank { 
    border: 1px red solid; 
} 
+0

它驗證,但頁面繼續行動頁面,它不停止在該頁面,並錯誤CSS顯示只有幾秒鐘 – diEcho

+0

和在CSS應該是'邊框'而不是'空' – diEcho

+0

它提交因爲我剛剛發佈了一個片段。 'onsubmit'處理函數必須返回false或停止事件以防止表單提交。感謝您指出的CSS修復。 – Anurag

3

事情是這樣的:

$("#myForm").submit(function() { 

    // if there are some empty inputs 
    if($(":input[value]").length != $(":input").length)) { 

     // filter out the empty ones, apply some CSS 
     $(":input").filter(function() { 
      return this.value.length == 0; 
     }).addClass("blank"); 

     // do not submit 
     return false; 
    } 
}); 

$(":input").blur(function() { 
    if(this.value.length > 0) { 
     $(this).removeClass("blank"); 
    } 
}); 
+0

工作正常,但有tw o語法錯誤 1.在.length函數後刪除額外的')' 2.add'(''在'solid之後''這個應該是 css(「border」,「1px red solid」;')' – diEcho

+0

仍然有幫助。 ..謝謝 –