2011-07-29 54 views
0

我有一個關於配置文件的選項卡的表單,在關於部分我有textareas我必須執行驗證。如何驗證點擊保存按鈕,我不想驗證每一個文本區域,如下面的代碼jquery驗證多個textarea函數

$(document).ready(function(){$(「#btnSaveMyChanges」)。click(function (){

  var valid = true; 
      if ($("#txtAboutMySelf").val() == "") { 
       $("#ErrorAboutMySelf").html("This Field is Required."); 
       valid = false; 
      } 
      if ($("#txtAboutMyMatch").val() == "") { 
       $("#ErrorAboutMyMatch").html("This Field is Required."); 
       valid = false; 
      } 
      if ($("#txtWhatIamDoing").val() == "") { 
       $("#errmsg").html("invalide"); 
       valid = false; 
      } 
      if ($("#txtIamReallyGood").val() == "") { 
       $("#errmsg").html("invalide"); 
       valid = false; 
      } 
      if ($("#txtTheSixThings").val() == "") { 
       $("#errmsg").html("invalide"); 
       valid = false; 
      } 
      if ($("#txtISpendaLot").val() == "") { 
       $("#errmsg").html("invalide"); 
       valid = false; 
      } 
      if ($("#txtTheFirstThings").val() == "") { 
       $("#errmsg").html("invalide"); 
       valid = false; 
      } 
      if ($("#txtOnaTypicalFriday").val() == "") { 
       $("#errmsg").html("invalide"); 
       valid = false; 
      } 
      if ($("#txtMyFriendsDescribe").val() == "") { 
       $("#errmsg").html("invalide"); 
       valid = false; 
      } 
      return valid; 
     }); 
    }); 

進行函數,然後保存通過點擊形式進行迭代得到所有的文本區域,然後在keyup事件我需要的最大長度爲500,每執行所需的字段驗證和,以及text area

+0

你也可以檢查驗證插件:http://docs.jquery.com/Plugins/validation – Pehmolelu

回答

1

嘗試這樣:

var valid = true; 
jQuery("#errmsg").html(""); //clear error messages first 

jQuery("textarea").each(function() { 
    if(jQuery(this).val() == "") { 

     var errorText = "invalide"; 
     var id = jQuery(this).attr("id"); 

     if(id == "txtAboutMySelf" || id == "txtAboutMyMatch") { 
      errorText = "This Field is Required."; 
     } 

     var $errMsg = jQuery("#errmsg"); 
     $errMsg.html($errMsg.html() + "<br />" + errorText); //you can't tell which error message belongs to what though; the same problem exists in your original solution. 
     valid = false; 
    } 
}); 

您需要弄清楚爲錯誤消息提供上下文的方式。也就是說,您需要將錯誤消息與元素配對。您可以通過在每個元素旁邊創建一個錯誤消息div或span來完成此操作,然後在發生錯誤時填充該元素。

+0

這工作比我好。但前兩個呢?它們返回兩個不同的值,不僅彼此不同,而且返回另一個值。 –

+0

@Andrew,我添加了一個if語句來檢查textarea的id。如果它匹配'txtAboutMyself'或'txtAboutMyMatch',則錯誤消息不同。 –

+0

我的意思是我需要一個常用的函數,它應該檢查我所有的textareas是否爲按鈕點擊所需的和maxlength,如果驗證是真的,那麼調用submitchanges()方法。 – Tan

0

我相信你可以做這樣的事情:


$(document).ready(function() { 
     $("#btnSaveMyChanges").click(function() { 
      var valid = true; 
      if ($("#txtAboutMySelf").val() == "") { 
       $("#ErrorAboutMySelf").html("This Field is Required."); 
       valid = false; 
      } 
      if ($("#txtAboutMyMatch").val() == "") { 
       $("#ErrorAboutMyMatch").html("This Field is Required."); 
       valid = false; 
      } 
      if ($("#txtWhatIamDoing, #txtIamReallyGood, #txtTheSixThings, #txtISpendaLot, #txtTheFirstThings, #txtOnaTypicalFriday, #txtMyFriendsDescribe").val() == "") { 
       $("#errmsg").html("invalide"); 
       valid = false; 
      return valid; 
     }); 
}); 
+0

我的意思是我需要一個通用的函數,它應該檢查我所有的textareas的按鈕點擊所需的和maxlength如果驗證是真的,然後調用submitchanges()方法。 – Tan