注册 登录
编程论坛 J2EE论坛

text不能获得焦点

liugy52 发布于 2007-09-13 08:34, 1981 次点击
下面是<form>元素里面的一个代码片断, 我要给text2添加onfocus事件处理函数,当点击text2时
打开一个日历面板进行日期数据的输入,但是当加上onfocus事件处理函数之后,text2就不能获得
焦点,感觉就像text2被禁用一样,根本不能获得焦点了。去掉这个事件处理函数后一切正常。

请问这是为什么?如果要加这个事件处理函数该怎么加?? 请大侠们多多指点!! 谢谢!!
-------------------------------------------------------------------------------------
...

<tr>
<td align="right" bordercolor="#6495ED" class="table_table">TEXT1:</td>
<td bordercolor="#6495ED" class="table_table">
<input type="text" name="text1"
value="<%=info.getText1())%>"/></td>
</tr>
<tr>
<td align="right" bordercolor="#6495ED" class="table_table">TEXT2:</td>
<td bordercolor="#6495ED" class="table_table">
<input type="text" name="text2" value="<%=info.getText2()%>"
onfocus="javascript:calendar();"/></td>
</tr>
<tr>
<td align="right" bordercolor="#6495ED" class="table_table">TEXT3:</td>
<td bordercolor="#6495ED" class="table_table">
<input type="text" name="text3" value="<%=info.getText3()%>"/></td>
</tr>

....

----------------------------------------------------------------------------------------
6 回复
#2
liugy522007-09-13 16:22

去掉了一些不必要的代码,更容易阅读:

...

<tr>
TEXT1: <input type="text" name="text1" value="<%=info.getText1())%>"/></td>
</tr>
<tr>
TEXT2: <input type="text" name="text2" value="<%=info.getText2()%>"
onfocus="javascript:calendar();"/></td>
</tr>
<tr>
TEXT3: <input type="text" name="text3" value="<%=info.getText3()%>"/></td>
</tr>

....

#3
atsjun2007-09-13 22:51

在事件触发时 面板被调出 text失去焦点
然后你点回去 又触发事件 然后又失去焦点
例子:

<SCRIPT LANGUAGE="JavaScript">

function bbb(){
document.forms[0].ccc.focus();
}


</SCRIPT>
<FORM METHOD=POST ACTION="">
<INPUT TYPE="text" NAME="aaa" onfocus="javascript:bbb();">
<INPUT TYPE="text" NAME="ccc">
</FORM>

[此贴子已经被作者于2007-9-13 23:15:02编辑过]

#4
liugy522007-09-14 07:57

我试了一下,这样是不行的

<html>
<head>
<script language="JavaScript">
function bbb(){
document.forms[0].ccc.focus();
}
</script>
</head>
<body>
<FORM METHOD=POST ACTION="">
<INPUT TYPE="text" NAME="aaa" onfocus="javascript:bbb();">
<INPUT TYPE="text" NAME="ccc">
</FORM>
</body>

用浏览器打开这个页面运行时,第一个文本框(aaa)不能响应鼠标的点击事件。

#5
liugy522007-09-14 08:12

呵呵 刚才看了一下 上面你说的是对的 我没有注意到你的bbb()中用的是ccc.focus();

#6
liugy522007-09-14 08:35
在这之前我可能没有把问题描述清楚,请大家原谅。


我要在focus事件发生后调用calendar()在网页上显示一个能够进行日期选择的
面板

我做了两个页面:暂且命名为newInfo.jsp和modifyInfo.jsp

newInfo.jsp:
----------------------------------------------------------------------
... ...

<tr>
TEXT2: <input type="text" name="text2"
onfocus="javascript:calendar();"/></td>
</tr>
......

这个页面的作用是提交表单往数据库里添加数据,并且这个页面上calendar()是可以
正常运行的。


modifyInfo.jsp:
---------------------------------------------------------------------
......

<tr>
TEXT2: <input type="text" name="text2" value="<%=info.getText2()%>"
onfocus="javascript:calendar();"/></td>
</tr>
......


但是在modifyInfo.jsp页面中,我想完成下面所述的功能:
首先查询数据库获得一个日期值,然后把这个值赋给text2, 然后点击text2弹出
日历面板进行日期的选择,最后提交页面完成数据库中日期信息的修改。

在这个页面上,text2不能响应鼠标的点击。

还请大侠们多多指点,谢谢了!
#7
ouskylin2007-09-16 07:59
。。。。
1