对于一个项目,我有两个select-formfields通过jquery触发器发送(" submit"); 这在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阻止了...... 无法回答我的问题,因为我的声誉很小。
答案 0 :(得分:0)
尝试使用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");
}
});
答案 1 :(得分:0)
在台式机Mac上使用Safari版本11.1.2(13605.3.8):如果在 form 标签中指定了target =“ _ blank”,则提交表单失败。该表格在其他浏览器上也可以正常运行。删除target =“ _ blank”规范,该表单将正常运行。与target =“ _ blank”相同的表单确实可以在其他浏览器(包括Chrome,Firefox和IE)上正常工作。
我只能假设这种无法支持“ target”属性的原因是Safari缺陷。可能的解决方法是使用“ javascript:window.open()”代替URL作为操作。