【问题标题】:jQuery Validation - Highlighting Radio LabelsjQuery 验证 - 突出显示单选标签
【发布时间】:2015-02-01 12:41:40
【问题描述】:

我正在尝试使用 jQuery 验证来突出显示我的单选按钮的标签,而不是我的其他输入的标签。我的单选按钮集有一个标签,称为“类型”。我似乎无法让它工作!

$(document).ready(function(){
    $("#healthForm").validate({

 highlight: function(element, errorClass) {
     $(element).addClass(errorClass)
     $(element.form).find("label[for='type']")
                    .addClass("radioerror");
  },
  unhighlight: function(element, errorClass) {
     $(element).removeClass(errorClass)
     $(element.form).find("label[for='type']")
                    .removeClass("radioerror");
  },
    errorPlacement: function(error, element) {
        }
    });
  });

【问题讨论】:

  • 什么不起作用,是课堂作业还是课堂样式本身?
  • 课堂作业。我认为我的问题在于 find("label[for='type']") - 这是调用它的正确方法吗?
  • 有多个表格吗?在您的 HTML 中,“类型”分配给 IDName?
  • 它是

标签: jquery validation label jquery-validate


【解决方案1】:

我对 jQuery 的验证插件不是很熟悉,但是这个好像不太对:

$(element.form).find("label[for='type']")

首先,我认为$(element.form) 应该是$(element).closest('form')?我可能是错的:P

其次,.find("label[for='type']") 与“element”无关,因为同一表单中的任何其他元素都会获取相同的标签。

如果标签是单选按钮的兄弟,您可能希望直接使用sibling()

【讨论】:

    【解决方案2】:

    我将您的代码更改为以下代码,然后它就可以工作了!

    $(document).ready(function(){
        $("#healthForm").validate({
            highlight: function(element, errorClass) {
    
                if(element.type == 'radio') {
                    $(element.form).find('[name="' + element.name + '"').each(function(){
                        var $this = $(this);
                        $this.closest('label[for="' + $this.attr('id') + '"').addClass(errorClass);
                    });
                }
    
            },
            unhighlight: function(element, errorClass) {
    
                if(element.type == 'radio') {
                    $(element.form).find('[name="' + element.name + '"').each(function(){
                        var $this = $(this);
                        $this.closest('label[for="' + $this.attr('id') + '"').removeClass(errorClass);
                    });
                }
    
            },
            errorPlacement: function(error, element) {
            }
        });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-31
      • 2019-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-17
      相关资源
      最近更新 更多