【问题标题】:Safari does not trigger form SubmitSafari 不触发表单提交
【发布时间】:2018-08-27 12:58:31
【问题描述】:

对于一个项目,我有两个通过 jquery trigger("submit"); 发送的 select-formfields; 这在 Firefox 和 Chrome 中运行良好,但在 Safari 中没有任何反应。

这是 HTML 代码:

<body>
    <form action="http://google.de" target="_blank" style="display: inline;" method="get">
    <select class="bstarch2" data-role="none" name="q">
        <option value="none">Please choose</option>
        <option value="a: worked">A</option>
        <option value="b: worked">B</option>
    </select>
</form>
<select class="bstarch" data-role="none">
    <option value="none">Please choose</option>
    <option value="http://google.de">Google</option>
    <option value="http://en.wikipedia.org">Wikipedia</option>
</select>
<form action="" method="get" target="_blank" id="mmform"></form>
</body>

这是 Javascript 代码:

$("body").on("change", ".bstarch", function () {
    if ($(this).val() != "none") {
        $("#mmform").attr("action", $(this).val());
        $("#mmform").trigger("submit");
        $(this).val("none");
    }
});

$("body").on("change", ".bstarch2", function () {
    if ($(this).val() != "none") {
        $(this).parent().trigger("submit");
        $(this).val("none");
    }
});

我在这里有一个 jsfiddle,它也不适用于 Safari: http://jsfiddle.net/P7vNX/

感谢您的帮助。

编辑: 知道了: safari 似乎阻止了表单作为弹出窗口提交。 代码是正确的,但被 Safari 屏蔽了... 无法回答我的问题,因为我的名声太小了。

【问题讨论】:

    标签: javascript jquery html safari


    【解决方案1】:

    在桌面 Mac 上使用 Safari 版本 11.1.2 (13605.3.8):如果在 form 标记中指定了 target="_blank",则提交表单将失败。相同的表单在其他浏览器上按预期工作。删除 target="_blank" 规范,表单可以正常工作。带有 target="_blank" 的相同表单在其他浏览器(包括 Chrome、Firefox 和 IE)上可以正常工作。

    我只能假设无法支持“目标”属性是 Safari 缺陷。一种可能的解决方法是使用“javascript:window.open()”而不是 URL 作为操作。

    【讨论】:

    • 谢谢!你把我从头疼的几个小时里救了出来!
    【解决方案2】:

    尝试使用 jQuery 代替 $ ,

         jQuery("body").on("change", ".bstarch", function () {
          if (jQuery(this).val() != "none") {
           jQuery("#mmform").attr("action", $(this).val());
           jQuery("#mmform").trigger("submit");
           jQuery(this).val("none");
          }
        });
    

    【讨论】:

    • 遗憾的是这并没有解决问题,它仍然无法在 safari 中工作。
    猜你喜欢
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    • 2013-02-14
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    • 2022-11-02
    • 2012-06-28
    相关资源
    最近更新 更多