Javascript JQuery自动提交在Safari中不起作用
我想使用JQuery自动提交一个表单。但是,它在较旧版本的Safari(macOS Mojave,iOS 12)中不起作用。它适用于Chrome、Firefox和iOS 13 所以,这很可能是Safari的bug,但我有很多用户的设备运行的是旧软件,所以我需要解决它 以下是我的自动提交代码: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中不起
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,请使用它。