在jsp中动态生成的表格:
<c:set var="list" value="<%=list %>"></c:set>
<c:forEach items="${list}" var="v" >
<tr>
<td colspan="8">
<form action="borrowServlet" method="post">
<table width="1000" align="center" border="1" bordercolor="00BFFF">
<tr>
<td width="95">
<c:out value="${v.bookName}"></c:out><input type="hidden" value="${v.bookName}" id="bookName">
</td>
<td width="95">
${v.bookAuthor }<input type="hidden" value="${v.bookAuthor }" id="bookAuthor">
</td>
<td width="99">
${v.bookPublisher}<input type="hidden" value="${v.bookPublisher}" id="bookPublisher">
</td>
<td width="100">
${v.bookTime } <input type="hidden" value="${v.bookTime } " id="bookTime">
</td>
<td width="105">
${v.bookIsbn }<input type="hidden" value=" ${v.bookIsbn }" id="bookIsbn ">
</td>
<td width="100">
${v.bookPrice }<input type="hidden" value="${v.bookPrice }" id="bookPrice ">
</td>
<td width="96">
${v.bookAmount }<input type="hidden" value="${v.bookAmount }" id="bookAmount">//书的数量
</td>
<td width="94">
<input type="submit" value="借书" onclick="return borrowbook();">
</td>
</tr>
</table>
</form>
</td>
</tr>
</c:forEach>
我要对书的数量进行验证,当小于零的时候是不能借书的,
我的js如下:
function borrowbook()
{
var bookAmount=document.getElementById("bookAmount").value;
var intbookAmount=parseInt(bookAmount);
if(intbookAmount==0)
{
alert("数量不足");
return false;
}
return true;
}
但是这样是不行的,它获取的数量永远是第一行的。怎么回事啊?
<c:set var="list" value="<%=list %>"></c:set>
<c:forEach items="${list}" var="v" >
<tr>
<td colspan="8">
<form action="borrowServlet" method="post">
<table width="1000" align="center" border="1" bordercolor="00BFFF">
<tr>
<td width="95">
<c:out value="${v.bookName}"></c:out><input type="hidden" value="${v.bookName}" id="bookName">
</td>
<td width="95">
${v.bookAuthor }<input type="hidden" value="${v.bookAuthor }" id="bookAuthor">
</td>
<td width="99">
${v.bookPublisher}<input type="hidden" value="${v.bookPublisher}" id="bookPublisher">
</td>
<td width="100">
${v.bookTime } <input type="hidden" value="${v.bookTime } " id="bookTime">
</td>
<td width="105">
${v.bookIsbn }<input type="hidden" value=" ${v.bookIsbn }" id="bookIsbn ">
</td>
<td width="100">
${v.bookPrice }<input type="hidden" value="${v.bookPrice }" id="bookPrice ">
</td>
<td width="96">
${v.bookAmount }<input type="hidden" value="${v.bookAmount }" id="bookAmount">//书的数量
</td>
<td width="94">
<input type="submit" value="借书" onclick="return borrowbook();">
</td>
</tr>
</table>
</form>
</td>
</tr>
</c:forEach>
我要对书的数量进行验证,当小于零的时候是不能借书的,
我的js如下:
function borrowbook()
{
var bookAmount=document.getElementById("bookAmount").value;
var intbookAmount=parseInt(bookAmount);
if(intbookAmount==0)
{
alert("数量不足");
return false;
}
return true;
}
但是这样是不行的,它获取的数量永远是第一行的。怎么回事啊?
在一个页面里面,ID属性是唯一的,如果你重复定义了ID相同的表单,那么只有第一个的ID有效。
你这种情况应该用name
然后用document.getElementsByName("bookAmount")[rowIndex].value;
其中rowIndex是你点击的那一行的row的索引。
可以在tr上面写一个onclick事件 onclick="borrowbook(this)"
function borrowbook(o){
var bookAmount=document.getElementsByName("bookAmount")[o.rowIndex].value;
var intbookAmount=parseInt(bookAmount);
if(intbookAmount==0)
{
alert("数量不足");
return false;
}
return true;
}
借那本书的时候判断那本书的数量
可以不用ID, 把你的ID改为NAME ..<input type="hidden" value="${v.bookAmount }" name="bookAmount">借书的按钮: <input type="submit" value="借书" onclick="return borrowbook(this.form);"> 把这一行的表单对象传入判断的时候就用
function borrowbook(form) {
var bookAmount=form['bookAmount '].value;
......