【问题标题】:Have to click twice to submit the form in IE8必须点击两次才能在 IE8 中提交表单
【发布时间】:2010-06-11 10:07:07
【问题描述】:

简单的 html 表单中的一个非常奇特的错误。更改选项后,必须单击按钮两次才能提交表单。单击一次后按钮获得焦点,但未提交表单。在 IE8 中只有这种方式,在 Chrome 和 FF 中运行良好。

请注意<select> 之前的“g^”。它必须是一个字母或数字,后跟一个符号才能生成此错误。例如,'a#','f$','3(' 都会产生相同的错误。否则它可以正常工作。顺便说一句,如果您不立即更改选项并单击按钮,则不会有任何错误。

很奇怪吧?

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

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

【问题讨论】:

  • 似乎在这里工作正常:jsfiddle.net/vCdpN 另外我建议进行验证。里面有很多不必要的错误。
  • 你的 IE8 中的 JSFiddler 示例是否也被破坏了?
  • @RoToRa 我通过 IE8 在 JsFiddle 上运行脚本,它可以工作。这只是让我更加困惑。我的 IE8 发生了什么?什么设置可能触发此错误?
  • 页面上还有其他内容是您为示例而遗漏的吗?
  • 我保留了 html 表单并删除了其他所有内容,但 bug 仍然存在。请查看修改后的帖子。

标签: html forms


【解决方案1】:

我在这里提供代码,它工作正常。检查此代码是否此代码也给您带来问题。

<!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>

【讨论】:

  • 但它在我的 IE8 上不起作用... 是否有任何 IE 设置触发了这个错误?
  • 我刚刚发布了我的代码。核实。确保更改表单的 action 属性。
  • 我复制你的代码并在我的 IE8 上运行它。 bug 还是一样的。
  • 我对帖子进行了重大修改。
猜你喜欢
  • 2015-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-28
  • 1970-01-01
  • 2014-02-15
  • 2021-10-25
  • 2012-10-01
相关资源
最近更新 更多