我正在尝试创建自己的 GridView 。在这里,我从数据库中检索食品并将其存储到动态创建的表中。这些表有很多行,所有行都有一个文本框来输入特定项目的数量。我希望此文本框仅在选中该复选框时启用。
如何执行此代码。
我用了一整天的时间来寻找这个问题的答案。我是 j2ee 应用程序的初学者。 请帮我。
请推荐一些站点以查找可访问和可编辑的数据网格示例的脚本。
该jsp页面的代码如下:
<%@ page import="java.sql.*" %>
<%@ page import="java.io.*" %>
<html> <head><title>orderSample</title>
<script language="JavaScript"> <!--
function enable_text(status,i) { status=!status; document.orderForm.NAME_TEXT('i').disabled
= status;///////here is the problem. how to insert i here . i want to do something like this//// } //--> </script>
</head>
<body bgcolor="white">
<form method=post name=orderForm>
<h1>Data from the table 'item details' of database 'caffe' in sql </h1>
<% ResultSet r=null; r=(ResultSet)request.getAttribute("message"); System.out.println(r); int i = 0; %>
<TABLE cellpadding="15" border="1" style="background-color: #ffffcc;"> <TR>
<TD>ORDER ID</TD>
<TD>ORDER PRICE</TD>
<TD>Quantity</TD>
<TD>Add Item</TD>
</TR>
<%do{
System.out.println("I am in Ob");
%>
<TR>
<TD><%=r.getString(1)%></TD>
<TD><%=r.getString(2)%></TD>
<!-- <td><INPUT TYPE="TEXT" NAME="NAME_TEXT<%=i%>" VALUE="" IsEnabled="{Binding ElementName=checkBox1, Path=IsChecked}"/></td>-->
<td><INPUT TYPE="TEXT" NAME="NAME_TEXT<%=i%>" VALUE="" /></td>
<td><input type="checkbox" name="others<%=i%>" onclick="enable_text(this.checked,<%=i%>)"
></td>
</TR> <%i++; }while(r.next()); %>
</TABLE>
</form>
</body>
</html>
最佳答案
要使用 JavaScript 在同一表格行中使用复选框启用输入文本字段,最简单的方法是获取 jQuery .
首先,为表格行中的复选框和输入字段指定一个类名。
<td><input type="checkbox" class="add" /></td>
<td><input type="text" class="quantity" /></td>
然后,你可以使用jQuery
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function() {
$('.add').click(function() {
$(this).closest('tr').find('.quantity').attr('disabled', !this.checked);
});
});
</script>
这基本上用 class="add"
告诉每个复选框单击时它应该查找最近的父项 <tr>
元素,然后使用 class="quantity"
定位元素然后设置它的 disabled
属性与复选框的选中状态相反。
关于javascript - 如何在jsp中访问动态创建的文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5284721/