js遇到了一个很奇怪的问题。
在jsp页面中的button 关联了borrowbook() 但怎么点都不行,可是吧button和borrowbook()放到html 网页中又可以,这是为什么啊<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean" %>
<%@ taglib prefix="logic" uri="http://struts.apache.org/tags-logic" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
<!--**************************************** js 在此 * ****************************************-->
<script type="text/javascript">
function borrowbook() {
var count = 0;
var j = 0;
for (var i = 0; i < document.getElementsByName("selectFlag").length; i++) {
if (document.getElementsByName("selectFlag")[i].checked) {
j = i;
count++;
}
}
if (count == 0) {
alert("请选择需要修改的用户!");
return;
}
if (count > 1) {
alert("一次只能修改一个用户!");
return;
}
if (count == 1) {
window.self.location = "book_borrow.do?bookID=" + document.getElementsByName("selectFlag")[j].value;
}
}
</script>
</head>
<body><form method="post" action="book_search.do">
馆藏数目检索:
<br/>
图书名称:
<input type="text" name="name" id="name" size="20"/>
<br/>
作者:
<input type="text" name="author" id="author" size="20"/>
<br/>
ISBN
<input type="text" name="ISBN" id="ISBN" size="20"/>
<br/>
<input type="submit" value=查询 /><br/><br/><br/>
<table width="95%" border="0" cellspacing="0" cellpadding="0"
align="center" class="table1">
<tr>
<td width="200" class="rd6">
复选框
<!-- <input type="checkbox" name="ifAll" onClick="checkAll()"> -->
</td>
<td width="200" class="rd6">
图书编号
</td>
<td width="200" class="rd6">
ISBN
</td>
<td width="200" class="rd6">
书名
</td>
<td width="200" class="rd6">
作者
</td>
</tr>
<logic:empty name="booklist">
<tr>
<td class="rd8" colspan="5">
<font color="red">没有符合条件的数据</font>
</td>
</tr>
</logic:empty>
<logic:notEmpty name="booklist">
<logic:iterate id="book" name="booklist">
<tr>
<td class="rd8">
<input type="checkbox" name="selectFlag" class="checkbox1"
value="<bean:write name="book" property="bookID"/>">
</td>
<td class="rd8">
<bean:write name="book" property="bookID" />
</td>
<td class="rd8">
<bean:write name="book" property="ISBN" />
</td>
<td class="rd8">
<bean:write name="book" property="name" />
</td>
<td class="rd8">
<bean:write name="book" property="author" />
</td>
</tr>
</logic:iterate>
<td>
<!-- **************************************button在此*********-->
<input type="button" value="借阅" name="borrowbook"
id="borrowbook"
onclick="borrowbook()"
/>
</td>
</logic:notEmpty>
</table>
</form></body>
</html>
在jsp页面中的button 关联了borrowbook() 但怎么点都不行,可是吧button和borrowbook()放到html 网页中又可以,这是为什么啊<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean" %>
<%@ taglib prefix="logic" uri="http://struts.apache.org/tags-logic" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
<!--**************************************** js 在此 * ****************************************-->
<script type="text/javascript">
function borrowbook() {
var count = 0;
var j = 0;
for (var i = 0; i < document.getElementsByName("selectFlag").length; i++) {
if (document.getElementsByName("selectFlag")[i].checked) {
j = i;
count++;
}
}
if (count == 0) {
alert("请选择需要修改的用户!");
return;
}
if (count > 1) {
alert("一次只能修改一个用户!");
return;
}
if (count == 1) {
window.self.location = "book_borrow.do?bookID=" + document.getElementsByName("selectFlag")[j].value;
}
}
</script>
</head>
<body><form method="post" action="book_search.do">
馆藏数目检索:
<br/>
图书名称:
<input type="text" name="name" id="name" size="20"/>
<br/>
作者:
<input type="text" name="author" id="author" size="20"/>
<br/>
ISBN
<input type="text" name="ISBN" id="ISBN" size="20"/>
<br/>
<input type="submit" value=查询 /><br/><br/><br/>
<table width="95%" border="0" cellspacing="0" cellpadding="0"
align="center" class="table1">
<tr>
<td width="200" class="rd6">
复选框
<!-- <input type="checkbox" name="ifAll" onClick="checkAll()"> -->
</td>
<td width="200" class="rd6">
图书编号
</td>
<td width="200" class="rd6">
ISBN
</td>
<td width="200" class="rd6">
书名
</td>
<td width="200" class="rd6">
作者
</td>
</tr>
<logic:empty name="booklist">
<tr>
<td class="rd8" colspan="5">
<font color="red">没有符合条件的数据</font>
</td>
</tr>
</logic:empty>
<logic:notEmpty name="booklist">
<logic:iterate id="book" name="booklist">
<tr>
<td class="rd8">
<input type="checkbox" name="selectFlag" class="checkbox1"
value="<bean:write name="book" property="bookID"/>">
</td>
<td class="rd8">
<bean:write name="book" property="bookID" />
</td>
<td class="rd8">
<bean:write name="book" property="ISBN" />
</td>
<td class="rd8">
<bean:write name="book" property="name" />
</td>
<td class="rd8">
<bean:write name="book" property="author" />
</td>
</tr>
</logic:iterate>
<td>
<!-- **************************************button在此*********-->
<input type="button" value="借阅" name="borrowbook"
id="borrowbook"
onclick="borrowbook()"
/>
</td>
</logic:notEmpty>
</table>
</form></body>
</html>
<input type="button" value="借阅" name="borrowbook"
id="borrowbook"
onclick="borrowbook()"
/>放到位置不对,在你的放的那个位置被完美忽略了
应该是你在jsp里用的那些标签里, 有些不执行js吧
那个html里面的head中除了script就没东西了
id="borrowbook"
onclick="javaScript:borrowbook()"
/>
<td>
<!-- **************************************button在此*********-->
<input type="button" value="借阅" name="borrowbook"
id="borrowbook"
onclick="borrowbook()"
/>
</td>
</logic:notEmpty>
2、不可能运行不成功,JSP最终是要转换成HTML下载到客户端的。
用网页-查看源代码,仔细找找,一定会找出来。
<html><head><meta http-equiv="Content-Type" content="text/html; charset=GB18030"><title>Insert title here</title> <script type="text/javascript"> function borrowbook() { var count = 0; var j = 0; for (var i = 0; i < document.getElementsByName("selectFlag").length; i++) { if (document.getElementsByName("selectFlag")[i].checked) { j = i; count++; } } if (count == 0) { alert("请选择需要修改的用户!"); return; } if (count > 1) { alert("一次只能修改一个用户!"); return; } if (count == 1) { window.self.location = "book_borrow.do?bookID=" + document.getElementsByName("selectFlag")[j].value; } } </script></head><body><form method="post" action="book_search.do">馆藏数目检索:<br/>图书名称:<input type="text" name="name" id="name" size="20"/> <br/>作者: <input type="text" name="author" id="author" size="20"/><br/>ISBN <input type="text" name="ISBN" id="ISBN" size="20"/><br/><input type="submit" value=查询 /><br/><br/><br/> <table width="95%" border="0" cellspacing="0" cellpadding="0" align="center" class="table1"> <tr> <td width="200" class="rd6"> 复选框 </td> <td width="200" class="rd6"> 图书编号 </td> <td width="200" class="rd6"> ISBN </td> <td width="200" class="rd6"> 书名 </td> <td width="200" class="rd6"> 作者 </td> </tr> <tr> <td class="rd8"> <input type="checkbox" name="selectFlag" class="checkbox1" value="1"> </td> <td class="rd8"> 1 </td> <td class="rd8"> a </td> <td class="rd8"> java programming </td> <td class="rd8"> feng </td> </tr> <tr> <td class="rd8"> <input type="checkbox" name="selectFlag" class="checkbox1" value="2"> </td> <td class="rd8"> 2 </td> <td class="rd8"> b </td> <td class="rd8"> ooad </td> <td class="rd8"> zhang </td> </tr> <tr> <td class="rd8"> <input type="checkbox" name="selectFlag" class="checkbox1" value="3"> </td> <td class="rd8"> 3 </td> <td class="rd8"> c </td> <td class="rd8"> uml </td> <td class="rd8"> aa </td> </tr> <tr> <td> <input type="button" value="借阅" name="borrowbook" id="borrowbook" onClick="borrowbook()" /> </td> </tr> </table></form></body></html>这是执行后的html
<input type="button" value="借阅" name="borrowbook" id="borrowbook" onClick="borrowbook()"/>
把JS 代码放到下面 </body>之上永远不会出错,
放到上面有时会出错如果还不行楼主就用不同的浏览器再测下
<input type="button" value="借阅" name="borrowbook" onclick="borrowbook()" />名字可以代表一个input对象
function borrowbook(){...}函数也可以代表一个函数对象都是对象 冲突了 你把方法的名字换一个 就可以了