【问题标题】:Form submit button does not work in Firefox but works in Chrome or IE表单提交按钮在 Firefox 中不起作用,但在 Chrome 或 IE 中起作用
【发布时间】:2012-09-17 20:43:21
【问题描述】:

我有一个带有一些输入字段和一个提交按钮的表单。表单应该提交给一个 servlet。

当我点击提交/返回时,在 Chrome 或 IE 中一切正常,但在 Firefox 上却没有。对这个问题有任何想法吗?

HTML:

<body>
    <div align="center">
    <form>

        <table cellpadding ='2' border ='0'>
        <tr>
            <td>
                <label for="Database">Database</label>
            </td>
            <td>
                <input id="database" type="text" onchange="setdirtybit()" name="Database" style="width:200px"></input>
            </td>
        </tr>
        <tr>
            <td>
                <label for="Script">Script</label>
            </td>
            <td>
                <input id="script" type="text" onchange="setdirtybit()" name="Script" style="width:200px"></input>
            </td>
        </tr>
        </table>
        <br />
            <input type ='submit' value='Submit' onclick='Close()'></input>
    </form>
    </div>
</body>

JavaScript:

function Close()
    {
        window.returnValue = "";
        if(window.dirtyFlag)
        {
            document.forms[0].method="post";
        document.forms[0].action="/nbreports/updates/";
        document.forms[0].submit();
            window.returnValue =    getValue('database') + '/' +
                        getValue('script') ;
        }
        window.close();
    }

    function getValue(varName)
    {
        if(document.getElementById(varName) == null)
            return "";
        if(document.getElementById(varName).value == null)
            return "";
        else
            return document.getElementById(varName).value;
    }

    function setdirtybit()
    {
        window.dirtyFlag = 1;
    }

【问题讨论】:

  • Close() 方法有什么作用?考虑发布其代码,提炼出与此问题相关的内容。
  • 结合 SUBMIT 和 ONCLICK 并不简单。您需要正确处理事件。
  • 此页面显示为弹出窗口。 Close() 方法旨在将值返回到父页面。代码已添加
  • 我通常使用按钮类型并将我所有的序列化/提交/之后操作都放在函数中
  • @FlavorScape :我在关闭函数中添加了手动提交代码,并从表单标签中删除了相同的代码。现在它在 Firefox 中就像一个魅力,但在 chrome 中却不是。

标签: javascript html


【解决方案1】:
$('#mytextfield').change(function(e) {
    $('input[type=submit]').focus();
});

【讨论】:

    【解决方案2】:

    在你的提交按钮上放一个 ID,他们这样做:

    $(document).ready(function(){
        $('#submitButtonId').click(function(){
            var url = 'myServletUrlHere';
            var data = $('form').serialize();
    
            $.ajax({
                type: 'POST',
                url: url,
                data: data,
                success: alert("It worked!")
            });
        });
    });
    

    【讨论】:

    • @Snuffleupagus 所以?他没说我不能用。我用 jQuery 给了他一个关于他的问题的答案。那为什么拒绝我的回答呢?
    【解决方案3】:

    我不确定,但我知道以下表单在 Firefox 中不起作用,但在所有其他浏览器中都适用:

    <form method="POST">
    <textarea rows="4" cols="60" name="body"></textarea><br>
    <input type="submit" value="Submit">
    </form>
    

    就像提交按钮甚至不处理鼠标点击一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多