2010-11-15 129 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个字符,则会在输入密码时通知他们。

你明白了....希望这会有所帮助