Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery自动提交在Safari中不起作用_Javascript_Jquery_Forms - Fatal编程技术网

Javascript JQuery自动提交在Safari中不起作用

Javascript JQuery自动提交在Safari中不起作用,javascript,jquery,forms,Javascript,Jquery,Forms,我想使用JQuery自动提交一个表单。但是,它在较旧版本的Safari(macOS Mojave,iOS 12)中不起作用。它适用于Chrome、Firefox和iOS 13 所以,这很可能是Safari的bug,但我有很多用户的设备运行的是旧软件,所以我需要解决它 以下是我的自动提交代码: onclick=“document.getElementById(“标记记住编辑表单”).submit();” 在提交按钮中,我添加了样式display:none 不幸的是,这在较早版本的Safari中不起

我想使用JQuery自动提交一个表单。但是,它在较旧版本的Safari(macOS Mojave,iOS 12)中不起作用。它适用于Chrome、Firefox和iOS 13

所以,这很可能是Safari的bug,但我有很多用户的设备运行的是旧软件,所以我需要解决它

以下是我的自动提交代码:

onclick=“document.getElementById(“标记记住编辑表单”).submit();”

在提交按钮中,我添加了样式
display:none

不幸的是,这在较早版本的Safari中不起作用

我发现了一个问题,建议使用绝对定位来隐藏元素,但当我在表单上尝试时,1)它在较早版本的Safari中不起作用,2)它也打破了Firefox中的提交

那么如何在旧版本的Safari中使用JQuery autosubmit呢?(第12条及以下)

以下是Drupal 8中的表单供参考:

<form id="flagging-remember-edit-form" class="flagging-remember-edit-form flagging-form" accept-charset="UTF-8" action="/ai/review" method="post" data-drupal-selector="flagging-remember-edit-form">
<div id="vote-wrapper" class="radio-toolbar">
<div id="edit-field-list-int-score-wrapper" class="field--type-list-integer field--name-field-list-int-score field--widget-options-buttons js-form-wrapper form-wrapper" onclick="document.getElementById("flagging-remember-edit-form").submit();" data-drupal-selector="edit-field-list-int-score-wrapper"><fieldset id="edit-field-list-int-score--wrapper" class="fieldgroup form-composite required js-form-item form-item js-form-wrapper form-wrapper" data-drupal-selector="edit-field-list-int-score"><legend> <span class="fieldset-legend js-form-required form-required">Score</span></legend>
<div class="fieldset-wrapper">
<div id="edit-field-list-int-score">
<div class="control js-form-item form-item js-form-type-radio form-item-field-list-int-score js-form-item-field-list-int-score"><label class="score-0 radio option"> <input id="edit-field-list-int-score-0" class="score-0 form-radio is-link radio" checked="checked" name="field_list_int_score" type="radio" value="0" data-drupal-selector="edit-field-list-int-score-0" /> 0<br />0 </label></div>
<div class="control js-form-item form-item js-form-type-radio form-item-field-list-int-score js-form-item-field-list-int-score"><label class="score-1 radio option"> <input id="edit-field-list-int-score-1" class="score-1 form-radio is-link radio" name="field_list_int_score" type="radio" value="1" data-drupal-selector="edit-field-list-int-score-1" /> 1<br />1 </label></div>
<div class="control js-form-item form-item js-form-type-radio form-item-field-list-int-score js-form-item-field-list-int-score"><label class="score-2 radio option"> <input id="edit-field-list-int-score-2" class="score-2 form-radio is-link radio" name="field_list_int_score" type="radio" value="2" data-drupal-selector="edit-field-list-int-score-2" /> 2<br />2 </label></div>
<div class="control js-form-item form-item js-form-type-radio form-item-field-list-int-score js-form-item-field-list-int-score"><label class="score-3 radio option"> <input id="edit-field-list-int-score-3" class="score-3 form-radio is-link radio" name="field_list_int_score" type="radio" value="3" data-drupal-selector="edit-field-list-int-score-3" /> 3<br />3 </label></div>
<div class="control js-form-item form-item js-form-type-radio form-item-field-list-int-score js-form-item-field-list-int-score"><label class="score-4 radio option"> <input id="edit-field-list-int-score-4" class="score-4 form-radio is-link radio" name="field_list_int_score" type="radio" value="4" data-drupal-selector="edit-field-list-int-score-4" /> 4<br />4 </label></div>
<div class="control js-form-item form-item js-form-type-radio form-item-field-list-int-score js-form-item-field-list-int-score"><label class="score-5 radio option"> <input id="edit-field-list-int-score-5" class="score-5 form-radio is-link radio" name="field_list_int_score" type="radio" value="5" data-drupal-selector="edit-field-list-int-score-5" /> 5<br />5 </label></div>
</div>
</div>
</fieldset></div>
</div>
<input autocomplete="off" name="form_build_id" type="hidden" value="form-lubraH2Ya_UiThmQ3qdD2Xuvri-239sRONoQpXbW3tw" data-drupal-selector="form-lubrah2ya-uithmq3qdd2xuvri-239sronoqpxbw3tw" /><input name="form_token" type="hidden" value="eDSbk9K-hHl0iQEljT0370QogyRGB_kLIi6333ylgmg" data-drupal-selector="edit-flagging-remember-edit-form-form-token" /><input name="form_id" type="hidden" value="flagging_remember_edit_form" data-drupal-selector="edit-flagging-remember-edit-form" /><input name="field_int_duration" type="hidden" value="1603522718" data-drupal-selector="edit-field-int-duration" />
<div id="edit-actions" class="form-actions control buttons js-form-wrapper form-wrapper" data-drupal-selector="edit-actions"><input id="edit-submit" class="is-primary button button--primary js-form-submit form-submit has-text-weight-bold is-primary" style="display: none;" name="op" type="submit" value="Submit" data-drupal-selector="edit-submit" /></div>
</form>

分数
0
0 1
1 2
2 3
3 4
4 5
5
如果您有jQuery,您不想使用像
onload这样的HTML内联事件处理程序

尝试使用
部分,然后使用jQuery提交表单

<script>
$(function () {
    $("#flagging-remember-edit-form").submit();
});
</script>

$(函数(){
$(“#标记记住编辑表单”).submit();
});

如果您有jQuery,您不想使用像
onload这样的HTML内联事件处理程序

尝试使用
部分,然后使用jQuery提交表单

<script>
$(function () {
    $("#flagging-remember-edit-form").submit();
});
</script>

$(函数(){
$(“#标记记住编辑表单”).submit();
});

在这种情况下,问题是由于将
onClick
应用于容器
div
而不是单个字段
输入
元素造成的。我可以通过将
onClick
应用于
input
而不是
div
来解决问题。在这种情况下,问题是由于将
onClick
应用于容器
div
而不是单个字段
input
元素造成的。我可以通过将
onClick
应用到
input
而不是
div

来解决这个问题,我不太清楚为什么要坚持使用那些内联事件处理程序。至少十年来,它们一直是坏习惯。你有jQuery,就用它吧。我不太清楚你为什么坚持使用那些内联事件处理程序。至少十年来,它们一直是坏习惯。如果您有jQuery,请使用它。