2012-11-15 71 views
0

我試圖通過(http://jorenrapini.com/blog/javascript/the-simple-quick-and-small-jquery-html-form-validation-solution)重新制作一個jQuery腳本。這個腳本正在檢查一個from是否被填充,如果不是,將會出現一個錯誤消息。重新構建jQuery表單驗證

我想要做的只是在填寫兩個表單輸入字段中的一個時纔得到錯誤消息,如果它們都不是,那麼它們應該被忽略。表單字段被命名爲「firstinput」和「secondinput」(你可以在代碼中看到他們的id)。

$(document).ready(function(){ 
    // Place ID's of all required fields here. 
    required = ["firstinput", "secondinput"]; 
    // If using an ID other than #email or #error then replace it here 
    email = $("#email"); 
    errornotice = $("#error"); 
    // The text to show up within a field when it is incorrect 
    emptyerror = "Please fill out this field."; 

    emailerror = "Please enter a valid e-mail."; 

    $("#theform").submit(function(){  
     //Validate required fields 
     for (i=0;i<required.length;i++) { 
      var input = $('#'+required[i]); 
      if ((input.val() == "") || (input.val() == emptyerror)) { 
       input.addClass("needsfilled"); 
       input.val(emptyerror); 
       errornotice.fadeIn(750); 
      } else { 
       input.removeClass("needsfilled"); 
      } 
     } 

     // Validate the e-mail. 
     if (!/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(email.val())) { 
      email.addClass("needsfilled"); 
      email.val(emailerror); 
     } 

     //if any inputs on the page have the class 'needsfilled' the form will not submit 
     if ($(":input").hasClass("needsfilled")) { 
      return false; 
     } else { 
      errornotice.hide(); 
      return true; 
     } 
    }); 

    // Clears any fields in the form when the user clicks on them 
    $(":input").focus(function(){  
     if ($(this).hasClass("needsfilled")) { 
      $(this).val(""); 
      $(this).removeClass("needsfilled"); 
     } 
    }); 
}); 

任何人都可以請幫我解決方案,我真的很感激它。 /那花很多時間沒有運氣:(解決這個女孩

+0

那是哪裏的代碼應該檢查兩個字段是否都是空的? –

+0

因爲沒有任何類似的功能已經實現了,您是否想幫助我,先生? –

+1

您應該嘗試自己實現它,TNCodeMonkey提供了一些代碼。當然,我們可以爲你做所有的事情,但是你絕對沒有學到什麼,而且SO的目的是讓你學習,而不是讓我們爲你做你的工作,現在,如果你嘗試了, t把它交給w ork,_then_發佈一個問題,我們可以幫助你:) –

回答

1

我會在條件計算結果,如果一個或其他具有價值包裝你的for循環。

if($("#field1").val() == "" && $("#field2").val() == ""){ 
//Ignore 
}else{ 
//Do something 
} 

$(document).ready(function(){ 
    // Place ID's of all required fields here. 
    required = ["firstinput", "secondinput"]; 
    // If using an ID other than #email or #error then replace it here 
    email = $("#email"); 
    errornotice = $("#error"); 
    // The text to show up within a field when it is incorrect 
    emptyerror = "Please fill out this field."; 

    emailerror = "Please enter a valid e-mail."; 

    $("#theform").submit(function(){  
     //Validate required fields 
     if($("#firstinput").val() != "" || $("#secondinput").val() != "") 
     { 
     for (i=0;i<required.length;i++) { 
      var input = $('#'+required[i]); 
      if ((input.val() == "") || (input.val() == emptyerror)) { 
       input.addClass("needsfilled"); 
       input.val(emptyerror); 
       errornotice.fadeIn(750); 
      } else { 
       input.removeClass("needsfilled"); 
      } 
     } 
     } 
     // Validate the e-mail. 
     if (!/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(email.val())) { 
      email.addClass("needsfilled"); 
      email.val(emailerror); 
     } 

     //if any inputs on the page have the class 'needsfilled' the form will not submit 
     if ($(":input").hasClass("needsfilled")) { 
      return false; 
     } else { 
      errornotice.hide(); 
      return true; 
     } 
    }); 

    // Clears any fields in the form when the user clicks on them 
    $(":input").focus(function(){  
     if ($(this).hasClass("needsfilled")) { 
      $(this).val(""); 
      $(this).removeClass("needsfilled"); 
     } 
    }); 
}); 
+0

感謝您的答案TNCodeMonkey,事實是,我不知道如何使這項工作。我需要一個能夠向我展示一個實例的人。 –

+0

用您的發佈代碼更新了我的建議。 – TNCodeMonkey