【问题标题】:Clear jquery validation icons on form清除表单上的 jquery 验证图标
【发布时间】:2018-09-11 07:49:46
【问题描述】:

单击菜单中的幻灯片外部时,我需要清除所有验证错误消息和验证图标。

但是虽然表格重置和错误信息都被删除了,但十字标记保持不变。当我在菜单外点击时,我需要删除所有数据。

我正在使用下面的代码来重置表单并删除验证消息。

<script>
  $('.overlay').on('click', function(){    
     $("#ohut-innate-form")[0].reset();    
     $('#navbarSide').removeClass('reveal');
     $('.overlay').hide();
     $(".error").html('');
     $(".error").removeClass("error");
     $("ohut-innate-form").validate().resetForm();   
  });
</script>

这是我的表格

<form class="ohut-innate-form" id="ohut-innate-form" name="ohut-innate-form" method="post">
                        <span class="form-group">
                        <label >Email Address</label>
                        <input type="email" name="emailReg" id="emailReg" class="validate" required>
                        </span>
                        <span class="form-group">
                        <label>Password</label>
                        <input type="password" name="passwordReg" id="passwordReg" class="validate">
                        </span>
                        <span class="form-group">
                        <label>Confirm Password</label>
                        <input type="password" name="cpassword" id="cpassword" class="validate">
                        </span>
                        <span class="form-group">
                        <label>Name</label>
                        <input type="text"  name="name" id="name" class="validate">
                        </span>
                        <span class="form-group">
                        <label>Contact Number</label>
                        <input type="text" name="contact" id="contact" class="validate">
                        </span>
                        <input type="hidden" id="baseUrlReg" value="<?php echo base_url(); ?>">
                        <button type="submit" id="submit" class="btn  btn-block btn-primary mr-2" name="Login">Register</button>
                       <!-- <a href="#"  name="Login"  id="register_user" onclick="registerUser()" class="btn  btn-block btn-primary mr-2">Register</a> -->

                        <div class="formrow left" style="visibility: hidden;">
                            <div class="mainlableContent">
                                <input class="formtext" type="text" name="mid" id="mid" value="<?php echo $merchantid; ?>" >
                                <span class="glyphicon glyphicon-remove right errorcross" id="email_cross" style=""></span>
                            </div>
                        </div>
                    </form>

我怎样才能去掉红十字?

【问题讨论】:

  • 请点击&lt;&gt;并发布minimal reproducible example。现在无法查看您如何设置错误以及为什么更改类不能清除它们
  • $(window).click(function(){ $(".errorMessageClass").val(""); $(".crossClass").hide(); });
  • @Martin 现在进行正确验证,它会显示一个绿色勾号。我需要删除所有的勾号和叉号。
  • 只针对您希望使用@ShavindiPathirana 做某事的元素,很难 100% 帮助您,因为您正在使用一些自定义的类(可能应用一些 css?),我们不知道实际做了什么。尝试参考下面我的回答。

标签: jquery forms validation reset


【解决方案1】:

不确定这是否是您要查找的内容,但由于您标记了 jQuery,您可以使用 $(window).click(function(){ }); 来注册元素外部的点击,然后围绕它应用逻辑。您可以按类、名称​​或 ID 定位您的元素,这取决于看起来最方便的方式。

此外,当您退出一个元素时,您是要清除验证消息并隐藏所有元素的交叉,还是只隐藏您退出的那个?

略读您的代码,我认为最好的解决方案是在清除所有消息等时使用您在不同元素上的类。

一个例子是:

$(window).click(function() {
    $(".error").html(''); //this is your validation/error message that will be cleared
    $('.right errorcross').hide(); //this is your red cross that will be hidden
});

请注意,这是半伪代码,这意味着您必须对其进行调整以适应您的逻辑,主要是因为我不知道您的类具体做什么,因为您的问题中没有提供它们的代码.

【讨论】:

  • 您可以像现在一样添加嵌套类,并将其称为“elementToClear”或类似的名称并将其作为目标。然后,您将清除所有具有该类的元素。你可以对想要隐藏的元素做同样的事情,除非你已经相信你有泛型类可以通过,那么显然就使用它。
  • 查看您提供的代码,您似乎已经了解如何清除和隐藏您希望的元素,而您真正想要的是应用这些更改的函数退出元素,这将是我提供的功能。只需使用它来适应您的逻辑。就像我之前所说的,如果没有进一步的信息,很难给出任何进一步的指示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-30
  • 1970-01-01
  • 2015-08-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多