选择中的Select2与必填项不会更改边框颜色。

时间:2018-07-16 20:00:28

标签: select jquery-select2 required

我在表单中添加了此CSS规则,以在需要时添加橙色边框颜色。

:required{
    border-color: #f8ac59 !important;
}

但这不适用于Select2,当我尝试使用此方法时,我要添加此个人:

.select2-selection{
    border-color: #f8ac59 !important;
}

问题在于所有select2都具有橙色边框,而我只需要带有必需属性的“ select”输入中的select2。我该怎么解决。

HTML

<select class="form-control form-control-sm" data-width="100%" required>
    <option>Selec.</option>
    <option>Prueba 2 max with</option>
    <option>Prueba 3</option>
    <option>Prueba 4</option>
    <option>Prueba 5</option>
</select>

首字母缩写:

$('select').each(function () {
        $(this).off('change');
        var width= $(this).attr("data-width") || '100px';
        $(this).select2({
            theme: 'bootstrap4',
            placeholder: "Buscar y Selecionar",
            width: width,
            dropdownAutoWidth: true
        });
    });

2 个答案:

答案 0 :(得分:0)

    <select id="mySelect" onchange="myFunction()" class="form-control form-control-sm" data-width="100%" required>
        <option value="one">Selec.</option>
        <option value="two">Prueba 2 max with</option>
        <option value="tree">Prueba 3</option>
        <option value="four">Prueba 4</option>
        <option value="five">Prueba 5</option>
    </select>

<script>
function myFunction() {
  var x = document.getElementById("mySelect");
  if(x.value == "two"){
    x.style.border = "solid orange";
  }
  else{
    x.style.border = "none";
  }
}
</script>

希望这会有所帮助

答案 1 :(得分:0)

要解决该问题,有必要对凭单的初始化进行一些更改:

$('select').each(function () {
        $(this).off('change');
        var width= $(this).attr("data-width") || '100px';
        $(this).select2({
            theme: 'bootstrap4',
            placeholder: "Buscar y Selecionar",
            width: width,
            dropdownAutoWidth: true
        });
        var x = this.required;
        if(x){
            $(this).next().children().children().each(function(){
                $(this).css( "border-color", "#f8ac59" );
            });
        }
    });