jquery-ui对话框中的奇怪行为

时间:2012-04-23 13:07:28

标签: jquery-ui

我有这个jquery-ui形式:

<html>  
<head>
<script src="/socket.io/socket.io.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>
<script>
var socket = io.connect('http://localhost:8080');

$(function() {  
    $("#chat-form").dialog({
       autoOpen: false,
       height: 300,
       width: 550,
       modal: false,
           buttons: {
               Submit: function() {
                   socket.emit('send_fics_cmd', chat.val());
                   chat.val('');
               }
           }
}); 
</script>
</head>
<body>
<div id="chat-form" title="FICS Console">
    <div id="chat-window" class="text ui-widget-content ui-corner-all"></div>
    <form>
    <fieldset>
    <input type="text" name="chat" id="chat" value="" class="text ui-widget-content ui-corner-all" />
    <input type="text" style="display:none" />
    </fieldset> 
    </form>
</div>
</body>
</html>

node.js / socket.io服务器在localhost:8080上侦听套接字对象上的发射。

我不明白的是:没有相当荒谬的路线

<input type="text" style="display:none" />

在id =“chat”的输入文本框的正下方,只要我按下Return / Enter键,就会通过GET提交表单。提交处理程序未执行。即使提交按钮没有焦点,也会发生这种情况,这完全是非常不受欢迎的行为。

但是当存在这一行时,只有当它具有焦点时才会在返回/回车键上执行提交处理程序,这就是我想要的。

顺便说一句,它不适用于type =“hidden”,因此display:none只会使附加输入在视图中消失。

这是jquery-ui中的错误还是以某种方式有意义?

0 个答案:

没有答案