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>