按钮问题 本帖最后由 hailangbei 于 2009-12-18 11:45:36 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <html:form><html:submit value="提交1" /><input type="button" name="btnSubmit" value="提交2" onclick="this.form.submit()"></html:form>点击提交1按钮,表单提交;点击提交2按钮,表单没有提交提交。 解决方法: 都使用提交2的方法,在整个form中不出现提交1的方法。 submit 表单提交button 只是一个按钮而已<input type="submit" name="btnSubmit" value="提交" onclick="return js()">ok! <input type="button" style="WIDTH: 20px" name="addRow" value="+" onClick="addRow()">注意 onclick 要小写, js 是区分大小写的. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title></head><body><SCRIPT> sm=1;function addRow(){ sm++; if(sm>2) {sm--;alert("You can not do this!"); return false;} var row = document.getElementById("r"+sm); row.style.display='block'; } function deleteRow(){ if(sm<2) {alert("You can not do this!"); return false;} var cln = document.getElementById("b"+sm); var row = document.getElementById("r"+sm); cln.value=""; row.style.display='none'; sm--; }</SCRIPT><table align = "center" width=98%> <td align = "center"> <input type="button" style="WIDTH: 30px" name="addRow" value=" + " onClick="addRow()"> <input type="button" style="WIDTH: 30px" name="deleteRow" value=" - " onClick="deleteRow()"></td> </table><br><br><br><br><form action="search.php" target="_blank" method="get"> <table align = "center" width=98%> <tr id="r1"><td align = "center" width="20%"> </td> <td align = "center"width="27%"><select name="a1" style="width: 100%"><?php echo displayoption()?></select></td> <td align = "center" width="30%"><input type="text" size="70%" name="b1" /></td> <td align = "center" width="23%"><input type="button" style="WIDTH: 20px" name="addRow" value="+" onClick="addRow()"> <input type="button" style="WIDTH: 20px" name="deleteRow" value="-" onClick="deleteRow()"></td> </tr> <tr id="r2" style="display:none"> <td align = "center" width="20%"><input type="radio" name="c2" value ="and" checked />and     <input type="radio" name="c2" value ="or" />or</td> <td align = "center"width="27%"><select name="a2" style="width: 100%"><?php echo displayoption()?></select></td> <td align = "center" width="30%"><input type="text" size="70%" name="b2" /> </td> <td align = "center" width="23%"> <input type="button" style="WIDTH: 20px" name="addRow" value="+" onClick="addRow()"> <input type="button" style="WIDTH: 20px" name="deleteRow" value="-" onClick="deleteRow()"></td> </tr> <tr><td align = "center" colspan=3> <input type="submit" style="WIDTH: 65px" name="submit" value ="Search" />     <input type="reset" style="WIDTH: 65px" name="reset" value ="Reset" /> </td> </tr></table></form></body></html>高手们可以试一下我是说"+"、"-"按钮 放在表单外可以实现 击一下显示或隐藏一个tr 但放表单里就不管用了 大哥, 写代码也要的点规范好不好!! <input type="button" style="WIDTH: 20px" name="deleteRow" value="-" onClick="deleteRow()">name="deleteRow" onClick="deleteRow()"改掉你的name属性值. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title></head><body><SCRIPT> sm=1;function addRow(){ sm++; if(sm>2) {sm--;alert("You can not do this!"); return false;} var row = document.getElementById("r"+sm); row.style.display='block'; } function deleteRow(){ if(sm<2) {alert("You can not do this!"); return false;} var cln = document.getElementById("b"+sm); var row = document.getElementById("r"+sm); cln.value=""; row.style.display='none'; sm--; }</SCRIPT><table align = "center" width=98%> <td align = "center"> <input type="button" style="WIDTH: 30px" name="addRow" value=" + " onClick="addRow()"> <input type="button" style="WIDTH: 30px" name="deleteRow" value=" - " onClick="deleteRow()"></td></table><br><br><br><br><table align = "center" width=98%> <td align = "center"> <input type="button" style="WIDTH: 30px" name="addRow" value=" + " onClick="addRow()"> <input type="button" style="WIDTH: 30px" name="deleteRow" value=" - " onClick="deleteRow()"></td></table><br><br><br><br><form action="search.php" target="_blank" method="get"><table align = "center" width=98%> <tr id="r1"><td align = "center" width="20%"> </td> <td align = "center"width="27%"><select name="a1" style="width: 100%"><?php echo displayoption()?></select></td> <td align = "center" width="30%"><input type="text" size="70%" name="b1" /></td> <td align = "center" width="23%"><input type="button" style="WIDTH: 20px" name="addRow" value="+" onClick="addRow()"> <input type="button" style="WIDTH: 20px" name="deleteRow" value="-" onClick="deleteRow()"></td> </tr> <tr id="r2" style="display:none"> <td align = "center" width="20%"><input type="radio" name="c2" value ="and" checked />and     <input type="radio" name="c2" value ="or" />or</td> <td align = "center"width="27%"><select name="a2" style="width: 100%"><?php echo displayoption()?></select></td> <td align = "center" width="30%"><input type="text" size="70%" name="b2" /> </td> <td align = "center" width="23%"> <input type="button" style="WIDTH: 20px" name="addRow" value="+" onClick="addRow()"> <input type="button" style="WIDTH: 20px" name="deleteRow" value="-" onClick="deleteRow()"></td> </tr> <tr><td align = "center" colspan=3> <input type="submit" style="WIDTH: 65px" name="submit" value ="Search" />     <input type="reset" style="WIDTH: 65px" name="reset" value ="Reset" /> </td> </tr></table></form></body></html>前两个table里的 "+"、"-"按钮 击一下显示或隐藏一个tr 但放表单里就不管用了 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title></head><body><SCRIPT> var sm=1;function addRow(){ sm++; if(sm>2) {sm--;alert("You can not do this!"); return false;} var row = document.getElementById("r"+sm); row.style.display='block'; } function deleteRow(){ if(sm<2) {alert("You can not do this!"); return false;} var cln = document.getElementById("b"+sm); var row = document.getElementById("r"+sm); cln.value=""; row.style.display='none'; sm--; }</SCRIPT><table align = "center" width=98%> <td align = "center"> <input type="button" style="WIDTH: 30px" name="addRow" value=" + " onClick="addRow()"> <input type="button" style="WIDTH: 30px" name="deleteRow" value=" - " onClick="deleteRow()"></td></table><br><br><br><br><table align = "center" width=98%> <td align = "center"> <input type="button" style="WIDTH: 30px" name="addRow" value=" + " onClick="addRow()"> <input type="button" style="WIDTH: 30px" name="deleteRow" value=" - " onClick="deleteRow()"></td></table><br><br><br><br><form action="search.php" target="_blank" method="get"><table align = "center" width=98%> <tr id="r1"><td align = "center" width="20%"> </td> <td align = "center"width="27%"><select name="a1" style="width: 100%"><?php echo displayoption()?></select></td> <td align = "center" width="30%"><input type="text" size="70%" name="b1" /></td> <td align = "center" width="23%"><input type="button" style="WIDTH: 20px" name="addRow" value="+" onClick="window.addRow()"> <input type="button" style="WIDTH: 20px" name="deleteRow" value="-" onClick="window.deleteRow()"></td> </tr> <tr id="r2" style="display:none"> <td align = "center" width="20%"><input type="radio" name="c2" value ="and" checked />and     <input type="radio" name="c2" value ="or" />or</td> <td align = "center"width="27%"><select name="a2" style="width: 100%"><?php echo displayoption()?></select></td> <td align = "center" width="30%"><input type="text" size="70%" name="b2" /> </td> <td align = "center" width="23%"> <input type="button" style="WIDTH: 20px" name="addRow" value="+" onClick="window.addRow()"> <input type="button" style="WIDTH: 20px" name="deleteRow" value="-" onClick="window.deleteRow()"></td> </tr> <tr><td align = "center" colspan=3> <input type="submit" style="WIDTH: 65px" name="submit" value ="Search" />     <input type="reset" style="WIDTH: 65px" name="reset" value ="Reset" /> </td> </tr></table></form></body></html> 谢谢 hookee 我刚开始加的是 window.location再次膜拜 有问题还是得找你 楼主你看明白 hookee 改动过的代码了?<input type="button" style="WIDTH: 20px" name="deleteRow" value="-" onClick="deleteRow()"> 简要的说下原因: <input type="button" style="WIDTH: 20px" name="deleteRow" value="-" onClick="deleteRow()">当点击按钮时会执行click事件,也就是"deleteRow()",因为在form内它首先会在当前域(form)内查找deleteRow对象,恰巧你的按钮以deleteRow命名,所以它找到的其实是你的按钮对象也就是button, 而不是function deleteRow,理所当然最终出错了.再说下解决方法:因为命名问题导致js无法找到想要的对象,那改正就简单了,让对象不重名即可. 最直观的解决方法就是改掉button的名称(name),换成与页面内其它对象不重复的名称即可(也就是我上面所说的:改掉你的name属性值).当然还有间接的方法,也就是 hookee 的方法"window.deleteRow()",显示指定对象的"全称",如果你学过.net或java相信不会对命名空间陌生.再说下编码规范:对象命名是最基本的了,元素闭合等就不多说了.. html基础书上笔笔皆是.最后:我没有否定,我是在强调(善意的强调).当然我可以不"强调",但我觉得CSDN应该是个进步的地方,进步是要虚心的.. 关闭打开的frame jquery插件的使用:jplay如何使用? jquery的hello world例子初步来,为什么? input text 不能输入中文 如何得到iframe实际显示在浏览器中的区域的大小? ■请教一个js字符串替换的问题 帮朋友发个QQ前端群信息:201135430 是IE的问题吗? 请教:怎样做能在浏览器中屏蔽JavaScript的源代码 是否可以通过调用Applet的函数返回值,由JavaScript来显示。 取一个字符串路径的末名称 ,用正则,大家帮我看看对不对 网站发布
<html:submit value="提交1" />
<input type="button" name="btnSubmit" value="提交2" onclick="this.form.submit()">
</html:form>点击提交1按钮,表单提交;点击提交2按钮,表单没有提交提交。 解决方法:
都使用提交2的方法,在整个form中不出现提交1的方法。
button 只是一个按钮而已<input type="submit" name="btnSubmit" value="提交" onclick="return js()">ok!
注意 onclick 要小写, js 是区分大小写的.
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head><body>
<SCRIPT>
sm=1;
function addRow(){
sm++;
if(sm>2) {sm--;alert("You can not do this!"); return false;}
var row = document.getElementById("r"+sm);
row.style.display='block';
}
function deleteRow(){
if(sm<2) {alert("You can not do this!"); return false;}
var cln = document.getElementById("b"+sm);
var row = document.getElementById("r"+sm);
cln.value="";
row.style.display='none';
sm--;
}
</SCRIPT>
<table align = "center" width=98%>
<td align = "center">
<input type="button" style="WIDTH: 30px" name="addRow" value=" + " onClick="addRow()">
<input type="button" style="WIDTH: 30px" name="deleteRow" value=" - " onClick="deleteRow()"></td>
</table><br><br><br><br><form action="search.php" target="_blank" method="get"> <table align = "center" width=98%>
<tr id="r1"><td align = "center" width="20%"> </td>
<td align = "center"width="27%"><select name="a1" style="width: 100%"><?php echo displayoption()?></select></td>
<td align = "center" width="30%"><input type="text" size="70%" name="b1" /></td>
<td align = "center" width="23%"><input type="button" style="WIDTH: 20px" name="addRow" value="+" onClick="addRow()">
<input type="button" style="WIDTH: 20px" name="deleteRow" value="-" onClick="deleteRow()"></td>
</tr>
<tr id="r2" style="display:none">
<td align = "center" width="20%"><input type="radio" name="c2" value ="and" checked />and    
<input type="radio" name="c2" value ="or" />or</td>
<td align = "center"width="27%"><select name="a2" style="width: 100%"><?php echo displayoption()?></select></td>
<td align = "center" width="30%"><input type="text" size="70%" name="b2" /> </td>
<td align = "center" width="23%">
<input type="button" style="WIDTH: 20px" name="addRow" value="+" onClick="addRow()">
<input type="button" style="WIDTH: 20px" name="deleteRow" value="-" onClick="deleteRow()"></td>
</tr>
<tr><td align = "center" colspan=3>
<input type="submit" style="WIDTH: 65px" name="submit" value ="Search" />    
<input type="reset" style="WIDTH: 65px" name="reset" value ="Reset" />
</td>
</tr>
</table></form>
</body>
</html>高手们可以试一下我是说"+"、"-"按钮 放在表单外可以实现 击一下显示或隐藏一个tr 但放表单里就不管用了
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head><body>
<SCRIPT>
sm=1;
function addRow(){
sm++;
if(sm>2) {sm--;alert("You can not do this!"); return false;}
var row = document.getElementById("r"+sm);
row.style.display='block';
}
function deleteRow(){
if(sm<2) {alert("You can not do this!"); return false;}
var cln = document.getElementById("b"+sm);
var row = document.getElementById("r"+sm);
cln.value="";
row.style.display='none';
sm--;
}
</SCRIPT><table align = "center" width=98%>
<td align = "center">
<input type="button" style="WIDTH: 30px" name="addRow" value=" + " onClick="addRow()">
<input type="button" style="WIDTH: 30px" name="deleteRow" value=" - " onClick="deleteRow()"></td>
</table><br><br><br><br>
<table align = "center" width=98%>
<td align = "center">
<input type="button" style="WIDTH: 30px" name="addRow" value=" + " onClick="addRow()">
<input type="button" style="WIDTH: 30px" name="deleteRow" value=" - " onClick="deleteRow()"></td>
</table><br><br><br><br><form action="search.php" target="_blank" method="get">
<table align = "center" width=98%>
<tr id="r1"><td align = "center" width="20%"> </td>
<td align = "center"width="27%"><select name="a1" style="width: 100%"><?php echo displayoption()?></select></td>
<td align = "center" width="30%"><input type="text" size="70%" name="b1" /></td>
<td align = "center" width="23%"><input type="button" style="WIDTH: 20px" name="addRow" value="+" onClick="addRow()">
<input type="button" style="WIDTH: 20px" name="deleteRow" value="-" onClick="deleteRow()"></td>
</tr>
<tr id="r2" style="display:none">
<td align = "center" width="20%"><input type="radio" name="c2" value ="and" checked />and    
<input type="radio" name="c2" value ="or" />or</td>
<td align = "center"width="27%"><select name="a2" style="width: 100%"><?php echo displayoption()?></select></td>
<td align = "center" width="30%"><input type="text" size="70%" name="b2" /> </td>
<td align = "center" width="23%">
<input type="button" style="WIDTH: 20px" name="addRow" value="+" onClick="addRow()">
<input type="button" style="WIDTH: 20px" name="deleteRow" value="-" onClick="deleteRow()"></td>
</tr>
<tr><td align = "center" colspan=3>
<input type="submit" style="WIDTH: 65px" name="submit" value ="Search" />    
<input type="reset" style="WIDTH: 65px" name="reset" value ="Reset" />
</td>
</tr>
</table>
</form>
</body>
</html>
前两个table里的 "+"、"-"按钮 击一下显示或隐藏一个tr 但放表单里就不管用了
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head><body>
<SCRIPT>
var sm=1;
function addRow(){
sm++;
if(sm>2) {sm--;alert("You can not do this!"); return false;}
var row = document.getElementById("r"+sm);
row.style.display='block';
}
function deleteRow(){
if(sm<2) {alert("You can not do this!"); return false;}
var cln = document.getElementById("b"+sm);
var row = document.getElementById("r"+sm);
cln.value="";
row.style.display='none';
sm--;
}
</SCRIPT><table align = "center" width=98%>
<td align = "center">
<input type="button" style="WIDTH: 30px" name="addRow" value=" + " onClick="addRow()">
<input type="button" style="WIDTH: 30px" name="deleteRow" value=" - " onClick="deleteRow()"></td>
</table><br><br><br><br>
<table align = "center" width=98%>
<td align = "center">
<input type="button" style="WIDTH: 30px" name="addRow" value=" + " onClick="addRow()">
<input type="button" style="WIDTH: 30px" name="deleteRow" value=" - " onClick="deleteRow()"></td>
</table><br><br><br><br><form action="search.php" target="_blank" method="get">
<table align = "center" width=98%>
<tr id="r1"><td align = "center" width="20%"> </td>
<td align = "center"width="27%"><select name="a1" style="width: 100%"><?php echo displayoption()?></select></td>
<td align = "center" width="30%"><input type="text" size="70%" name="b1" /></td>
<td align = "center" width="23%"><input type="button" style="WIDTH: 20px" name="addRow" value="+" onClick="window.addRow()">
<input type="button" style="WIDTH: 20px" name="deleteRow" value="-" onClick="window.deleteRow()"></td>
</tr>
<tr id="r2" style="display:none">
<td align = "center" width="20%"><input type="radio" name="c2" value ="and" checked />and    
<input type="radio" name="c2" value ="or" />or</td>
<td align = "center"width="27%"><select name="a2" style="width: 100%"><?php echo displayoption()?></select></td>
<td align = "center" width="30%"><input type="text" size="70%" name="b2" /> </td>
<td align = "center" width="23%">
<input type="button" style="WIDTH: 20px" name="addRow" value="+" onClick="window.addRow()">
<input type="button" style="WIDTH: 20px" name="deleteRow" value="-" onClick="window.deleteRow()"></td>
</tr>
<tr><td align = "center" colspan=3>
<input type="submit" style="WIDTH: 65px" name="submit" value ="Search" />    
<input type="reset" style="WIDTH: 65px" name="reset" value ="Reset" />
</td>
</tr>
</table>
</form>
</body>
</html>
<input type="button" style="WIDTH: 20px" name="deleteRow" value="-" onClick="deleteRow()">
当点击按钮时会执行click事件,也就是"deleteRow()",因为在form内它首先会在当前域(form)内查找deleteRow对象,恰巧你的按钮以deleteRow命名,所以它找到的其实是你的按钮对象也就是button, 而不是function deleteRow,理所当然最终出错了.再说下解决方法:
因为命名问题导致js无法找到想要的对象,那改正就简单了,让对象不重名即可. 最直观的解决方法就是改掉button的名称(name),换成与页面内其它对象不重复的名称即可(也就是我上面所说的:改掉你的name属性值).当然还有间接的方法,也就是 hookee 的方法"window.deleteRow()",显示指定对象的"全称",如果你学过.net或java相信不会对命名空间陌生.再说下编码规范:
对象命名是最基本的了,元素闭合等就不多说了.. html基础书上笔笔皆是.最后:
我没有否定,我是在强调(善意的强调).当然我可以不"强调",但我觉得CSDN应该是个进步的地方,进步是要虚心的..