Jsp 属性按条件禁用
Jsp attribute DISABLE by condition
这次我有一个对象列表,其中包含属性名称、类别和数量列表。
在我的 jsp 标签中我有以下 select:
<select name="quantity" onchange="this.form.submit()">
此select用于更改产品数量并将新值发送到后端。
但是我有一种情况需要禁用 select
<select name="quantity" onchange="this.form.submit()" disabled="true">
如何根据类别字符串值启用或禁用 [=22=]?
您可以使用 JSTL 核心标签 <c:choose>
。
<c: choose>
的工作方式类似于 Java switch 语句,因为它允许您在多个选项之间进行选择。在 switch 语句有 case 语句的地方,<c:choose>
标签有 <c:when>
标签。正如 switch 语句具有用于指定默认操作的默认子句一样,<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>
您可以在 JS 中编写一个函数,根据您的第一个 select 结果禁用第二个 select。
最好从以下link的一些基础知识开始:
https://www.w3schools.com/js/tryit.asp?filename=try_dom_select_disabled
如果您正在使用 Jquery,您可以这样做来禁用 select。我添加了一个 id 以使其更容易。
添加 id 属性:
<select name="quantity" id="quantity" onchange="this.form.submit()">
通过jquery禁用:
$('#quantity').prop('disabled', 'disabled');
如果您正在使用它,您也可以通过 JSTL 禁用它。以前的答案提到了 choose,when,otherwise 标签,但是像这样的事情可以用一个简单的 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>
这次我有一个对象列表,其中包含属性名称、类别和数量列表。
在我的 jsp 标签中我有以下 select:
<select name="quantity" onchange="this.form.submit()">
此select用于更改产品数量并将新值发送到后端。 但是我有一种情况需要禁用 select
<select name="quantity" onchange="this.form.submit()" disabled="true">
如何根据类别字符串值启用或禁用 [=22=]?
您可以使用 JSTL 核心标签 <c:choose>
。
<c: choose>
的工作方式类似于 Java switch 语句,因为它允许您在多个选项之间进行选择。在 switch 语句有 case 语句的地方,<c:choose>
标签有 <c:when>
标签。正如 switch 语句具有用于指定默认操作的默认子句一样,<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>
您可以在 JS 中编写一个函数,根据您的第一个 select 结果禁用第二个 select。
最好从以下link的一些基础知识开始:
https://www.w3schools.com/js/tryit.asp?filename=try_dom_select_disabled
如果您正在使用 Jquery,您可以这样做来禁用 select。我添加了一个 id 以使其更容易。
添加 id 属性:
<select name="quantity" id="quantity" onchange="this.form.submit()">
通过jquery禁用:
$('#quantity').prop('disabled', 'disabled');
如果您正在使用它,您也可以通过 JSTL 禁用它。以前的答案提到了 choose,when,otherwise 标签,但是像这样的事情可以用一个简单的 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>