为什么提交所有表单代码不起作用?

时间:2010-12-28 12:15:10

标签: javascript jquery

以下代码为输入着色,但不提交chrome中的表单。它在Firefox中运行:

    <script type="text/javascript">
    $(function(){
    $('input').keypress(function(event) {
    if (event.keyCode == '13') {
    //alert($(this).parentsUntil('form').css('color'));
    $('form').css('color','red');
    $('form').submit();
    }
    });});</script>

请注意,提交按钮设置为display:none,如果我将其更改为visibility:hidden,它可以正常工作但保留不是我想要的地方。

感谢。

修改

以下是下面要求的完整示例:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js"></script> 
<title>دخول</title> 
<script type="text/javascript"> 
$(function(){
    $('input').keypress(function(event) {
        if (event.keyCode == 13) {
            $(this).parents('form').submit();
        }
    });
});
</script> 
</head> 
<body> 
<form action="http://www.yahoo.com" method='post'> 
<table > 
<tr><td>name: </td><td><input type="text" name="username" value=""></td></tr> 

<tr><td>password: </td><td><input type="password" name="password" value=""></td></tr> 
<tr><td colspan=2><a href="javascript:void(0)" onclick="$('#loginfrm').click();">Login</a> 
<div style="display: none;"><input type="submit" name="submit" value="Login" id="loginfrm"></div></td></tr> 
</table> 
</form> 

2 个答案:

答案 0 :(得分:3)

您的问题是您将提交按钮命名为submit,浏览器将其视为已使用的名称,为提交按钮指定dosubmit之类的名称或其他任何内容。

名称为submit(不起作用)

http://www.jsfiddle.net/pVUwW/

名称为dosubmit(有效)

http://www.jsfiddle.net/pVUwW/1/

唯一的区别是提交的名称。 除此之外,我将原始代码中的event.keyCode更改为event.which,请参阅http://api.jquery.com/event.which/了解原因。

答案 1 :(得分:0)

这很奇怪,只是在Chrome中尝试了这一点,即使没有您的代码也能正常运行(keypress

http://jsfiddle.net/72Nbm/