首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在div中包装有问题的字段?

如何在div中包装有问题的字段?
EN

Stack Overflow用户
提问于 2009-10-01 09:41:06
回答 3查看 2.3K关注 0票数 0

它将错误消息作为默认行为来显示<label>标记,但是我的CSS的设置方式需要一个div来包装有问题的元素,并在<p>标记中显示消息。

如果没有错误,我的html如下所示:

代码语言:javascript
运行
复制
<div class="grid-26 append-2">
  <p class="noMarginBottom">
    <label>First Name</label>
    <div class="jNiceInputWrapper">
      <div class="jNiceInputInner">
        <input type="text" class="text jNiceInput" name="name" />
      </div>
    </div>
  </p>
  <span class="clear" />
</div>

对于错误,它需要看起来像这样。请注意具有类error<p>标记的div

代码语言:javascript
运行
复制
$(document).ready(function() {
  $("#contact_form").validate({
    rules: {
      name: {
        required: true
      }
    }
  });
});
代码语言:javascript
运行
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="grid-26 append-2">
  <div class="error">
    <p>Please write your real name</p>
    <p class="noMarginBottom">
      <label>First Name</label>
      <div class="jNiceInputWrapper">
        <div class="jNiceInputInner">
          <input type="text" class="text jNiceInput" name="name" />
        </div>
      </div>
    </p>
    <span class="clear" />
  </div>
</div>

EN

回答 3

Stack Overflow用户

发布于 2009-10-02 13:09:08

这是我的完整工作代码--我选择使用默认的<label>标记而不是<p>标记。

代码语言:javascript
运行
复制
$(document).ready(function(){
$("#contact_form").validate({
    rules:{
        name: {
            required: true
        },
    }
    ,messages: {
        name: "Please write your full name"
    }
    ,errorClass: "error_label"
    ,errorPlacement: function(error,element){
        parentDiv = element.parents('.grid-26');
        parentDiv.wrapInner('<div class="error"></div>');
        errorDiv = parentDiv.children(".error");
        error.appendTo(errorDiv);
    }
    ,success: function(element){
        var errorDiv = element.parents('.error');
        element.remove();
        errorDiv.siblings().remove();
        errorDiv.replaceWith(errorDiv.children());
    }

});
});

谢谢你的帮助,Alex!

票数 1
EN

Stack Overflow用户

发布于 2009-10-01 09:51:08

代码语言:javascript
运行
复制
label.parents('.append-2')
     .prepend('<p>Please write your real name</p>')
     .wrapInner('<div class="error"></div>');

要将其恢复到以前的状态,请执行以下操作:

代码语言:javascript
运行
复制
var error = label.parents('.error');
error.siblings().remove();
error.replaceWith(error.children());
票数 0
EN

Stack Overflow用户

发布于 2009-10-01 11:27:53

我想通了:

代码语言:javascript
运行
复制
        ,errorPlacement: function(error,element){

        $('[for='+element.attr("name")+']').parents('.grid-26')

        .prepend('<p>'+error.text()+'</p>')

        .wrapInner('<div class="error"></div>');

    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1502934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档