gpt4 book ai didi

javascript - 使用 JQuery 更改 Chosen.js CSS

转载 作者:行者123 更新时间:2023-11-28 16:26:04 25 4
gpt4 key购买 nike

首先,我很抱歉没有包含代码,但我不确定要包含哪些内容,因为我使用的是 chosen.js 插件。我遇到的问题是我想使用 jquery 更改 chosen.js 选择元素的 css。我可以更改 chosen.css 文件中的 css,但我无法使用 jquery 更改它。下面的代码适用于普通输入 type=text 但不适用于我选择的任何 js 下拉菜单。下面是我正在使用的一些代码片段:

html:

<select class="chosen frm-field" id="program" name="program">
<option selected="selected" value="0"></option>
<option value="1">Adult</option>
<option value="2">Dislocated Worker</option>
<option value="3">In-School Youth</option>
<option value="4">Out-of-School Youth</option>
</select>

j查询:

function showErrors() {
$('#program').css({
'-webkit-box-shadow': "0px 0px 2px 2px rgba(255,0,0,1)",
'-moz-box-shadow': "0px 0px 2px 2px rgba(255,0,0,1)",
'box-shadow': "0px 0px 2px 2px rgba(255,0,0,1)"});
}

尝试添加 Chosen js .trigger 但还是不行:

$('#program').css({
'-webkit-box-shadow': "0px 0px 2px 2px rgba(255,0,0,1)",
'-moz-box-shadow': "0px 0px 2px 2px rgba(255,0,0,1)",
'box-shadow': "0px 0px 2px 2px rgba(255,0,0,1)"}).trigger("chosen:updated");

来自 Chrome Inspect 的渲染代码:

<select class="chosen frm-field error" id="program" name="program" style="display: none;">
<option selected="selected" value="0"></option>
<option value="1">Adult</option>
<option value="2">Dislocated Worker</option>
<option value="3">In-School Youth</option>
<option value="4">Out-of-School Youth</option>
</select>
<div class="chosen-container chosen-container-single chosen-container-single-nosearch" style="width: 100%;" title="" id="program_chosen">
<a class="chosen-single chosen-default">
<span>Select One</span>
<div>
<b></b>
</div>
</a>
<div class="chosen-drop">
<div class="chosen-search">
<input type="text" autocomplete="off" readonly="">
</div>
<ul class="chosen-results">
<li class="active-result" data-option-array-index="1">Adult</li>
<li class="active-result" data-option-array-index="2">Dislocated Worker</li>
<li class="active-result" data-option-array-index="3">In-School Youth</li>
<li class="active-result" data-option-array-index="4">Out-of-School Youth</li>
</ul>
</div>
</div>

将 id 从 select 编写的 html 更改为由 chosen.js 创建的 div,并且阴影显示但不正确。

新的 jquery 代码:

$('#program_chosen').addClass('error');

使用此代码的阴影图像: enter image description here

奇怪的是,如果我将边框底纹直接添加到 css 文件中的 .chosen-container-single.chosen-single 中,那么边框会显示为我会期望它。不幸的是,我只希望在用户提交表单但没有选择选项时发生这种情况。下面的图片显示了当前的行为: enter image description here

意识到这一点后,我还发现将 addClass .error 应用于 .chosen-container-single & .chosen-single 通过 jquery,它按预期工作。它将所需的阴影应用于所有选择。我已经尝试过 #program_chosen.chosen-container-single #program_chosen.chosen-single 但没有任何反应......

我觉得我很接近,但我错过了最后的联系。欢迎任何想法!提前致谢!

-- 可悲的是,我几乎整天都在研究这个问题,发现这是一个简单的问题。感谢 Steve 通过使用 addClass 而不是一遍又一遍地编写 box-shading 来帮助我清理我的代码……这是我的新错误。问题是 chosen.js 创建的 div 的高度大于它所包含的空间。我所要做的就是在 chosen.css 文件中设置高度,神奇的盒子阴影完美契合。这通过关闭其他一些东西,但它们只是通过调整一些边距来修复。尽管这很愚蠢,但我希望它能帮助其他人避免将来头痛。

最佳答案

我建议使用一个类来控制您的错误状态。试试这个:

function showErrors() {
$('#program').addClass('error');
}

然后添加这个 CSS:

#program.error {
-webkit-box-shadow: 0px 0px 2px 2px rgba(255,0,0,1);
-moz-box-shadow': 0px 0px 2px 2px rgba(255,0,0,1);
box-shadow': 0px 0px 2px 2px rgba(255,0,0,1);
}

当然,当错误被清除时,你需要删除这个类,所以在适当的时候运行:

$('#program').removeClass('error');

关于javascript - 使用 JQuery 更改 Chosen.js CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36096706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com