将一个错误类添加到selected.js元素

时间:2017-12-29 14:11:59

标签: javascript jquery jquery-chosen

我使用以下html + php:

<select class="chosen <?php echo (isset($error) ? 'error' : ''); ?>">
    <option></option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
</select>

JavaScript:

$('.chosen').chosen({width:"100%"});

和css:

.error{
    border: 1px solid #ff0000;
}

我希望能够为所选元素添加错误类,以使其变为红色。问题是,它不起作用。所选元素保持不变(无红色边框)。

提前致谢!

1 个答案:

答案 0 :(得分:1)

问题是所选择的是编辑HTML元素,而曾经选择的内容成为自定义div。您可以做的是使用'.chosen-container'类获取div并在那里应用您的样式。

$('.chosen').chosen();
.chosen-container{
    border: 1px solid #ff0000;
}

select{
  width: 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.8.2/chosen.jquery.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.8.2/chosen.css" rel="stylesheet"/>

<select class="chosen">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
</select>

修改

如果您仍然想使用php来回显错误类,您可以使用jQuery作为应用样式的变通方法,这样如果您在select上回显类'error',jQuery会将它应用于div。 / p>

$(document).ready(function () {
        if($('select.chosen').hasClass('error')) {
            $('.chosen-container').addClass('error');
        }
    });