javascript - 变量错误标签的正确位置 - Bootstrap/Jquery

标签 javascript jquery html css twitter-bootstrap

我有一个表单,在每个输入的前面都有一些错误标签 - 在右边。

我可以使用这个来控制每个错误的正确位置:

if(element.attr("name") == "id"){
   error.css( "right", "-95px" );
   }

然后我可以将标签准确地放在每个输入前面的 2-3 个像素处。

但是

问题:

  • 一些输入有 2 或 3 个不同的错误消息。

  • 每个标签都有不同的宽度(因为有些消息比其他消息短)

我可以控制每个宽度:

min-width: 100px;
max-width: 200px;
display: inline-block;
margin-bottom: 0;
font-weight: normal;
text-align: center;
vertical-align: middle;
white-space: nowrap;

最小/最大宽度 + 空白(nowrap)。

当我为 ERROR1 放置标签“Right -100px”时 - 消息显示正常 - 输入外有 2-3 个像素。

当消息更改为 ERROR2(带有较大标签的最大消息)时 - 标签显示在输入中。

如果消息很短,标签会显示在输入之外 10-12 像素处。

发生这种情况是因为标签向左增长 - 而不是向右增长..

如何选择正确的标签成长方向?

例子:

在屏幕中间放一个点 > 今天,最大宽度从中心到右边。

我怎样才能从中间到左边?

float ?

这是 https://jsfiddle.net/4v2br346/ (我认为这是理解问题的更好方法..:D)

请尝试输入全名。

非常感谢!!

最佳答案

使用 margin-left 会帮助你。检查这个

JS

errorPlacement: function (error, element) {
ElementWidth = parseFloat($(element).outerWidth()) + 7;
if (element.attr("name") == "id") {
       error.css("margin-left", ElementWidth + 'px');
}
if (element.attr("name") == "name") {
       error.css("margin-left", ElementWidth + 'px');
}
if (element.length) {
      error.insertAfter(element);
} else {
      error.insertAfter(element);
}
},

DEMO

enter image description here

注意:由于有箭头,我在宽度上增加了 7 像素。

关于javascript - 变量错误标签的正确位置 - Bootstrap/Jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32494672/

相关文章:

javascript - 如何让子菜单出现在主菜单下方

javascript - 将动态创建的元素的值存储到数据库 PHP MySql

javascript - 禁用和启用带有计数器和过渡效果的点击事件

javascript - 不显示第二个选项值

javascript - Angular Ui-Bootstrap 在页面加载时折叠闪烁

javascript - 如何使用 Google Cloud Storage JSON API 获取可恢复上传的上传进度信息?

javascript - 实时预览与代码扩展

javascript - 非常简单的 jquery 自定义函数抛出错误

javascript - 如果每个循环内未设置变量,如何显示某些内容?

JavaScript queryselector 方法在 IE8 中不起作用