2

我正在寻找一个 CSS 规则,以便在具有ng-required属性的输入之后应用红色星号。

问题是,这些输入上没有标签,占位符用作标签。

这两个输入例如:

<div class="row">
    <div class="col-xs-6">
        <input type="text" name="CACLastName" ng-model="cac.lastName" placeholder="NOM" ng-required="true" ng-disabled="$parent.isDisabled" class="form-control"/>
    </div>
    <div class="col-xs-6">
        <input type="text" name="CACFirstName" ng-model="cac.firstName" placeholder="Prénom" ng-required="true" ng-disabled="$parent.isDisabled" class="form-control"/>
    </div>
</div>

所以我试着玩,:after但没有成功。此外,:required仅适用于required属性,不适用于ng-required.

4

2 回答 2

1

我尝试了 CSS,选择器似乎根本不适用于输入元素,而它适用于 div 元素。您可以尝试以下操作,您会看到星号插入在之后div而不是在之后input

<div class="row">
    <div class="col-xs-6">
        <input type="text" name="CACLastName" ng-model="cac.lastName" placeholder="NOM" ng-required="true" ng-disabled="$parent.isDisabled" class="form-control"/>
    </div>
    <div class="col-xs-6">
        <input type="text" name="CACirstName" ng-model="cac.firstName" placeholder="Prénom" ng-required="true" ng-disabled="$parent.isDisabled" class="form-control"/>
    </div>
</div>

<div class="text-div" ng-required="true">
  TEST DIV LOOK -->
</div>

CSS:

[ng-required]:after {
  content: "*"
}

输出:

在此处输入图像描述

Jsfiddle 现场问题示例

在我看来,这是 javascript 的工作。使用您的 html,此代码将起作用(本机 JS):

var form_inputs = document.getElementsByClassName('form-control')

for ( var i = 0; i < form_inputs.length; i ++ ) {
    if ( form_inputs[i].hasAttribute('ng-required') ) {
    form_inputs[i].insertAdjacentHTML('afterend', '<span style='color: red;'>*</span>');
  }
}

jsfiddle解决方案

于 2016-09-22T09:17:34.620 回答
0

这种方式对我有用,并不是我想要的全部干净,但这里有:

我用 a 将元素包装成<span>a class="obligatorio"。然后通过 ClassName 获取所有它们,将其附加到div绝对位置、“*”内容 =>textNode和其他项目类属性。

所以,我在 de fiels 上放了一个元素......

HTML

<span class="obligatorio"><input type="date" name="ingreso"></span>
<span class="obligatorio"><input type="time" name="lavIn"></span>

CSS

.obligatorio {
  position:relative;
}

.obligatorioItem {
  color: red;
  font-weight: 800;
  font-size: 12px;
  position: absolute;
  top:2px;
  left: 5px;
  padding: 0;
  margin: 0;
  z-index: 100;
}

Javascript香草

var obligatorio = document.getElementsByClassName("obligatorio");

for (const element of obligatorio) {
    console.log(element);
    const nodo = document.createElement("div");
    nodo.classList.add("obligatorioItem");
    const texto = document.createTextNode("*");
    nodo.appendChild(texto);
    console.log("elemento:", element);
    element.appendChild(nodo);
}
于 2022-01-07T00:13:47.440 回答