gpt4 book ai didi

javascript - 创建动态 JQuery 以禁用下拉列表

转载 作者:行者123 更新时间:2023-12-03 12:27:32 24 4
gpt4 key购买 nike

我正在使用 Servlet 和 JSP。我有一个 JSP 表单,其中有一个动态生成的下拉列表,因此到目前为止,下拉列表中有三个选项。

HTML 代码--

<form id='form' method='post' action='/test/'>
<select id="type" name="typeOne">

<optgroup id="first" name="First" label="FirstDiv">
<option value="value1" id="001">valuee1 count</option>
<option value="value2" id="002">value2</option>
<option value="value3" id="003">value3
</option>
</optgroup>
</select>
</form>

现在我需要使用 jquery 禁用上面下拉列表中的一些选项。下面是我的 jquery,其中我禁用了 001002 选项,但我已在下面的 jquery 中硬编码了 id -

<script>
$(document).ready(function () {
$(function () {
$("#type option[id='001']").prop("disabled", true);
$("#type option[id='002']").prop("disabled", true);
});
});

</script>

下面是我的 servlet,我从中传递一个列表,其中包含我想要在下拉列表中禁用的所有 id。

List<String> storeTest = new ArrayList<String>();
storeTest.add("001");
storeTest.add("002");

req.setAttribute("store", storeTest);

问题陈述:-

现在我的问题是 - 如何迭代 jquery 中的 store 列表并禁用下拉列表中的 001002 选项?

最佳答案

Servlet 中准备选择器,然后将其注入(inject)到 JSP 中:

MyServlet.java

List<String> storeTest = new ArrayList<String>();
storeTest.add("001");
storeTest.add("002");
// If you have Java8 : use Lamda list.stream().map(e->'#'+e)
req.setAttribute("store",StringUtils.join(mapForId(storeTest).toArray(),","));

this.getServletContext().getRequestDispatcher( "/myPage.jsp" ).forward( req, response );

然后在您的 jsp 中添加如下表达式:

myPage.jsp

<script type="text/javascript">
//....
jQuery(document).ready(function () {
jQuery(function () {
jQuery(<%=request.getAttribute("store") %>).prop("disabled", true);

});
});

</script>

知道 ma​​pForId 是 Servlet 中的另一种方法:

List<String> mapForId(List l){
List<String> newArr=new ArrayList<String>();
for(String attr : l){
newArr.add("option#"+attr);
}
return newArr;
}

关于javascript - 创建动态 JQuery 以禁用下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24114477/

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