簡體   English   中英

如果輸入字段無效,則清除它

[英]clearing a input field if it is invalid

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

我的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的字段。 是否可以在validate函數中做到這一點?

亞歷克斯

看一下這個:

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

我使用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個字符,它會在輸入密碼時通知他們。

您知道了...。希望這會有所幫助

假設插件為input分配了帶有error類的label ,那么您可以這樣做:

$('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/ ,如果我錯了那么這顯然可能不起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM