2009年9月1日星期二

[bug-fixed]DWR自带库函数dwr.util.onReturn引发刷新

今天在使用DWR库德dwr.util.onReturn(event,submitfunction);来定义输入框的回车操作时,由于我设置了刷新提示(使用onbeforeunload事件实现),所以出现不停出现提示的问题?

原因很简单,因为dwr.util.onReturn类似于submit表单,它也会刷新页面。只要使用其他方法来定义输入框的回车操作就可以了。

之后我搜索改用了如下代码:onkeypress="if(event.keyCode==13){Javascript:sendMessage();}"

但是还是失败了,仍旧会刷新。

之后我又修改成如下:onkeypress="Javascript:sendMessage();"

这种情况不会刷新,但是只要按下键它就会做一个sendMessage()的动作。并且如果按得enter键那么它就会刷新。看来问题的关键是enter键被按下默认就是submit,这样就好办了,很显然由于是粘过来的代码,所以我没注意到这是一个表单,整体的代码如下:

                    <form method="post" action="">
                        <p><input name="search" class="search" id="chattext" type="text" onkeypress="Javascript:sendMessage();"> <input value="发送消息" class="button" type="button" onclick="sendMessage();"></p>
                    </form>
之前发现submit刷新问题时,以为把action设为空就可以了,但是没想到这只对button的点击起作用,不对输入框的enter键起作用。所以干脆删掉<form method="post" action="">代码。
只剩下如下代码:
                        <p><input name="search" class="search" id="chattext" type="text" onkeypress="if(event.keyCode==13){Javascript:sendMessage();}"> <input value="发送消息" class="button" type="button" onclick="sendMessage();"></p>
果然,enter键就不会触发submit了。

没有评论: