必须单击两次才能在IE8中提交表单

时间:2010-06-11 10:07:07

标签: html forms

一个简单的html表单中的一个非常奇怪的错误。更改选项后,必须单击两次按钮才能提交表单。单击一次后按钮会聚焦,但不提交表单。它只在IE8中使用,在Chrome和FF中运行良好。

<select>之前注意'g ^'。它必须是一个字母或数字后跟一个符号来生成此错误。例如,'a#','f $','3('都创建相同的bug。否则它工作正常。顺便说一下,如果你不改变选项并立即点击按钮,就不会有任何错误。

非常奇怪,是吗?

<form method="post" action="match.php">
g^
<select>
<option>Select</option>
<option>English</option>
<option>French</option>
</select>

<input type="submit" value="Go" />
</form>

1 个答案:

答案 0 :(得分:0)

我在这里提供代码,工作正常。检查此代码是否此代码也为您提供了问题。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title> Sample page for language selection </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<style type="text/css">
    p{display: none;}
</style>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

<script type="text/javascript">
    $(function() {
        // language as an array
        var language = ['Arabic', 'Cantonese', 'Chinese', 'English', 'French', 'German', 'Greek', 'Hebrew', 'Hindi', 'Italian', 'Japanese', 'Korean', 'Malay', 'Polish', 'Portuguese', 'Russian', 'Spanish', 'Thai', 'Turkish', 'Urdu', 'Vietnamese'];

        $('#muyu').append('<option value=0>Select</option>');

        //loop through array
        for (i in language)  //js unique statement for iterate array
        { 

        $('#muyu').append($('<option>', { id: 'muyu' + i, val: language[i], html: language[i] })) }

        $('form').submit(function() {
            // alert('I am being called!');  // check if submit event is triggered
            if ($('#muyu').val() == 0) { $('#muyu_error').show(); } else { $('#muyu_error').hide(); return true; }
            return false;
        });
    })
</script>
</head>

<body>
    <form method="post" action="PostProb">
        I am fluent in <select name='muyu' id='muyu'></select>
        <p id='muyu_error'>Tell us your native language</p>
        <input type="submit" value="Go"/>
    </form>
</body>
</html>