2010-11-15 195 views
0

我正在使用驗證插件。我想弄清楚如何清除文本字段,如果該字段無效。如果輸入字段無效,則清除輸入字段

我的javascript代碼如下

$(document).ready(function() { 
$("#enrollForm").validate({ 
    rules: { 
     email: { 
      required: true, 
      email: true 
     }, 
     vemail: { 
      required: true, 
      email: true, 
      equalTo: "#email" 
     }, 
     offer_code: { 
      required: false, 
      remote: "check_code.php" 
     } 
    } 
});}); 

我試圖清除叫offer_code領域如果該字段是無效的。是否有可能在驗證功能中做到這一點?

亞歷

回答

1

檢查了這一點:

http://docs.jquery.com/Plugins/Validation/valid

的例子:

$(document).ready(function() { 
$("#enrollForm").validate({ 
    rules: { 
     email: { 
      required: true, 
      email: true 
     }, 
     vemail: { 
      required: true, 
      email: true, 
      equalTo: "#email" 
     }, 
     offer_code: { 
      required: false, 
      remote: "check_code.php" 
     } 
    } 
});}); 

$("#enrollForm").blur(function() { 
    if($("#enrollForm").valid()) { 
    //success code? 
    } else { 
    $("#enrollForm").val('') 
    } 
}); 
0

假設插件分配爲input一個label帶班的error,那麼你可以這樣做:

$('label.error').prev('input').val(''); 

是一個小更準確,因爲驗證插件也將for屬性分配給錯誤標籤:

$(document).ready(
    function(){ 

    // call to the plug-in here, input-clearing afterwards 
    // (though I'm not sure it matters, since it's dependant 
    // on CSS selectors to work, which aren't dependant on 
    // the plug-in itself). 

    $('label.error').each(
     function(){ 
     var errorInputID = $(this).attr('for'); 
     $('#'+errorInputID).val(''); 
     }); 
    }); 

我假設,'valida如果我錯了,那麼這顯然可能不起作用。

+0

你在哪裏放置它,所以它被稱爲?有回調句柄嗎? – Matt 2010-11-15 19:29:10

+0

@Matt,因爲'input'的清除依賴於被分配(確實是通過插件)的css選擇器,而不是返回任何特定數據的插件,所以我認爲它不重要。雖然我通常會首先調用插件*,然後它會讓'.error'類更加有意義。 – 2010-11-15 19:35:27

1

我已經使用jQuery來驗證一些表格。例如,在我的網站上,有一部分用戶必須輸入並重新輸入密碼。如果他們的第二個密碼的值等於他們的第一個密碼,我使用jquery向下滑動一個表示「您的passords匹配!」的div。

試試這個:

$(document).ready(function(){ 
     $("#error").hide(); 
     $("#invite").hide(); 
     $("#confirm").hide(); 
     $("#invite_short").hide(); 
     $("#short").hide(); 

    $('.button').click(function checkPass(){ 
     var pass = $("#pass").val(); 
     var confirm = $("#con-pass").val(); 

     if(pass != confirm) 
     { 
      $("#error").slideDown(); 
      return false; 
     } 

     }); 

    $('#con-pass').keyup(function checkPass(){ 
     var pass = $("#pass").val(); 
     var confirm = $("#con-pass").val(); 

     if(pass == confirm) 
     { 
      $("#error").slideUp(); 
      $("#confirm").slideDown(); 
      return false; 
     } 

     if(pass != confirm) 
     { 
      $("#confirm").slideUp(); 
      return false; 
     } 

     }); 

    $('#pass').keyup(function checkChar(){ 
     var pass = $("#pass").val().length; 

     if(pass < 4) 
     { 
      $("#short").slideDown(); 
      return false; 
     } 

     if(pass == 4 
     || pass > 4) 
     { 
      $("#short").slideUp(); 
     } 

     }); 

     $('#invite_number').keyup(function checkCode(){ 
     var code = $("#invite_number").val(); 

     if(code.length == 8) 
     { 
      $("#invite_short").slideUp(); 
      $("#invite").slideDown(); 
      return false; 
     } 

     if(code.length < 8) 
     { 
      $("#invite").slideUp(); 
      return false; 
     } 


     }); 

     $('.button').click(function checkCode(){ 
     var code = $("#invite_number").val(); 

     if(code.length < 8) 
     { 
      $("#invite_short").slideDown(); 
      return false; 
     } 

     }); 
    }); 

有很多的代碼存在。但是,它也根據長度要求驗證了表單。如果密碼少於4個字符,則會在輸入密碼時通知他們。

你明白了....希望這會有所幫助