当按下输入时,隐藏的提交按钮不会在chrome中提交

时间:2011-04-13 08:02:16

标签: javascript jquery submit hidden keypress

我遇到隐藏提交按钮的问题。我有一个用于Ajax(jQuery)聊天的输入字段,人们应该输入文本并按Enter键提交。这在Firefox中运行良好,但在Chrome中不行,我认为它将其视为不存在。

我正在使用以下代码:

$('#CommentChatForm').submit(function(event){ 
    ...
}

我用它来隐藏提交按钮:

$('#CommentChatForm input:submit').hide();

这使得HTML看起来像这样:

<div class="submit">
    <input type="submit" value="Submit" style="display: none;">
</div>

我还尝试使用keypress(),在顶部添加以下内容:

$('#CommentMessage').keypress(function(e){
    if(e.which == 13){
        $('#CommentChatForm').submit();
    }
})

这使得它在Chrome中运行良好,但在Firefox中它会导致它提交两次而不是一次。

5 个答案:

答案 0 :(得分:8)

有时您无法控制某些小部件或模块生成的HTML,因此您可以使用CSS设置样式。这也是我的情况。如果发现在Chrome中,则可以使用

visibility:hidden;

但如果你使用

则不行

display:none;

在FireFox中,无论哪种方式都可以。希望这会对某人有所帮助。

答案 1 :(得分:4)

如果您使用按键处理程序,则不需要隐藏的提交按钮,因此只需将其删除即可。

答案 2 :(得分:0)

如果您不想显示它,请不要将其添加到html中。

HTML:

<form id="form" onsubmit="my_submit()">
<input type="text" id="msg" />
</form>

的javascript:

function my_submit(){
    var msg = $('#msg').val();
    ....
    submit_on_my_own(msg);
    ...
    return false;
}

答案 3 :(得分:0)

我这样做,没有提交按钮。

$(document).ready(function()
{
    $('#Username').keypress(function(e){
        if(e.which == 13){
            $('#CheckLogin').submit();
            }
        }); 
    $('#Password').keypress(function(e){
        if(e.which == 13){
            $('#CheckLogin').submit();
            }
        });
});

答案 4 :(得分:-1)

在Chrome中为我工作

http://jsfiddle.net/qEAeN/

可能需要仔细检查你的js

相关问题