-1

我不知道该怎么解释。所以只要看看下面的图片。 Jquery 验证错误。

我正在使用 charishma Admin 主题。从这里下载:https ://github.com/usmanhalalit/charisma

我正在使用 jquery.validate.1.11.1.js。您的任何努力将不胜感激。提前致谢..!!更新:

我已经看到添加的元素是标签。它似乎适用于文本框和选择,但对于复选框和单选来说,它像上面一样显示,因为这些元素的大小小于文本框和选择。看到下面的代码生成:

<div class="control-group">
  <label class="control-label">Checkboxes</label>
  <div class="controls">
    <label class="checkbox inline">
      <div class="checker" id="uniform-tnc">
        <span>
          <input type="checkbox" value="option1" name="tnc" id="tnc" style="opacity: 0;" class="alert-error">
          <label for="tnc" class="alert-error">Agree to our terms and conditions to register with us.</label>
        </span>
      </div> Option 1
    </label>
  </div>
</div>

这适用于除复选框和单选之外的所有其他输入类型。对于这些它应该如下所示:

<div class="control-group">
  <label class="control-label">Checkboxes</label>
  <div class="controls">
    <label class="checkbox inline">
      <div class="checker" id="uniform-tnc">
        <span>
          <input type="checkbox" value="option1" name="tnc" id="tnc" style="opacity: 0;" class="alert-error">
        </span>
      </div> Option 1
      <label for="tnc" class="alert-error">Agree to our terms and conditions to register with us.</label>
    </label>
  </div>
</div>
4

2 回答 2

1

我在您的 OP 中看不到任何 jQuery Validate 插件的代码。我建议您为您的问题创建一个完整简洁的演示,并在您的 OP 中显示该演示。

默认情况下,jQuery Validate 插件只是在有错误的label元素之后立即插入一个元素input。在radioandcheckbox类型的情况下,在组中的第一个label之后立即插入。

由于这label越来越拥挤,有三种方法可以解决这个问题......

1) 编辑布局的 HTML 和 CSS,以便为label.

label2) 编辑 jQuery Validate 插件的回调函数/选项以在元素为 aradio或时放置不同的位置checkbox

3) 1 和 2 的某种组合。

于 2013-04-11T15:18:58.713 回答
1

我通过添加errorPlacement参数来验证得到了解决方案。以下是解决方案:

errorPlacement: function(error, element) {
  if (element.attr("name") == "tnc")
    error.appendTo($('#lbl-tnc'));
  else
    error.insertAfter(element);
}

我将 HTML 更改如下:

<label class="checkbox inline" for="tnc" id="lbl-tnc">
  <input type="checkbox" name="tnc" id="tnc">I Agree to <a href="#">Terms & Conditions</a>
</label>
于 2013-04-12T06:03:04.460 回答