这次我有一个对象列表Product with attributes name,Category and quantity list。
在我的jsp标签中,我有以下选择:
<select name="quantity" onchange="this.form.submit()">
此选择用于更改产品数量并将新值发送到后端。 但我有一个案例,我需要禁用选择
<select name="quantity" onchange="this.form.submit()" disabled="true">
如何根据类别字符串值启用或禁用选择?
答案 0 :(得分:1)
您可以使用JSTL核心代码<c:choose>
。
<c: choose>
的工作方式类似于Java switch语句,因为它允许您在多种备选方案之间进行选择。如果switch语句包含case语句,则<c:choose>
标记具有<c:when>
个标记。正如switch语句具有指定默认操作的default子句一样,<c:choose>
具有<c:otherwise>
作为默认子句。
示例:
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<html>
<head>
<title><c:choose> Tag Example</title>
</head>
<body>
<c:set var = "salary" scope = "session" value = "${2000*2}"/>
<p>Your salary is : <c:out value = "${salary}"/></p>
<c:choose>
<c:when test = "${salary <= 0}">
Salary is very low to survive.
</c:when>
<c:when test = "${salary > 1000}">
Salary is very good.
</c:when>
<c:otherwise>
No comment sir...
</c:otherwise>
</c:choose>
</body>
</html>
答案 1 :(得分:1)
如果您正在使用Jquery,则可以执行此操作以禁用选择。我添加了一个id以使其更容易。
添加id属性:
<select name="quantity" id="quantity" onchange="this.form.submit()">
通过jquery禁用:
$('#quantity').prop('disabled', 'disabled');
如果你正在使用它,你也可以通过JSTL禁用它。以前的答案提到选择,何时,否则标签,但这样的事情只需一个简单的 if 标签即可完成。
如果servlet设置的数量请求变量为空
<c:if test="${empty quantityVar}">
<select name="quantity" onchange="this.form.submit()" disabled="true">
</c:if>
如果servlet设置的数量请求变量不为空
<c:if test="${not empty quantityVar}">
<select name="quantity" onchange="this.form.submit()">
</c:if>
答案 2 :(得分:0)
您可以在JS中编写一个函数来禁用第二个选择,具体取决于您的第一个选择结果。
最好从以下链接开始介绍一些基础知识:
https://www.w3schools.com/js/tryit.asp?filename=try_dom_select_disabled