如果输入字段无效,则清除它

时间:2010-11-15 19:21:42

标签: javascript jquery jquery-validate

我正在使用验证插件。我想弄清楚如果字段无效,如何清除文本字段。

我的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的字段。是否可以在验证函数中执行此操作?

亚历

3 个答案:

答案 0 :(得分: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('')
  }
});

答案 1 :(得分:1)

我使用jquery来验证一些表单。例如,在我的网站上,有一个用户必须输入然后重新输入密码的部分。如果他们的第二个密码的值等于他们的第一个密码,我使用jquery滑下一个显示“你的密码匹配!”的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个字符,它会在输入密码时通知他们。

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

答案 2 :(得分:0)

假设插件为label分配inputerror,那么您可以这样做:

$('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('');
       });
  });

我假设,'验证插件',你的意思是这个,在http://bassistance.de/jquery-plugins/jquery-plugin-validation/,如果我错了,那么这显然可能不起作用。