100 分 求解一个关于回车的问题
这问题是我在别的论坛中看到的,我想想自已也不会,所以来请各位CSDN的高手帮帮忙
下面是原文(原网址是http://www.chinaaspx.com/comm/dotnetbbs/Showtopic.aspx?Forum_ID=5&Id=252416&PPage=2)
页面回车按钮的困惑
虽然可以避免问题,但是问题仍然存在:
一个HTML页面,很简单的只有一个表格,两个测试用的js
<html>
<head>
<script>
function onSub() {
alert("button submit");
return true;
}
function keypress() {
if(event.keyCode == 13) {
document.getElementsByName("sub1")[0].click();
return false;
}
return true;
}
function onSubmit() {
alert("automatic submit");
return true;
}
</script>
</head>
<body>
<form onsubmit="return onSubmit();">
<table width=200 height=200>
<tr>
<td>
<input type="text" name="text1">
</td>
<td>
<input type="submit" value="submit" name="sub1" onclick="return onSub();">
</td>
</tr>
</table>
</form>
</body>
</html>
解释一下,画面上只有一个textbox和一个submit类型的按钮,按照常理来讲,在html画面上点击回车按钮,默认激发的submit按钮事件。现在我做了这个一个画面,当在textbox中点下回车键的时候,没有激发submit按钮事件,而是直接form的onsubmit事件,于是,画面上只弹出了“automatic submit”,但是,我在那个textbox下面同样的copy了一个textbox的时候,名字不一样的当然,再在textbox中点回车键的时候,就触发了submit按钮,于是,画面就弹出了两个message,第一个“button submit”,第二个“automatic submit”,思考不得其解,于是,我仍然只保留了第一个textbox,把后来追加的textbox删除掉了,加上了一个属性,onkeypress="return keypress();",结果和有两个textbox的结果一致,废话,当然一致了,嗯,由于没有仔细的了解html的精髓,所以这个问题想不清楚,如果大家有知道的,不访告诉一下兄弟。ok?
为什么一个控件数时不激发而有两个的时候就会默认去激发submit按钮了呢???