显示键盘时,提交未在移动设备中触发的事件

时间:2015-08-24 10:40:00

标签: javascript android jquery ajax forms

使用Jquery 1.11.1我在表单提交上发送ajax请求:

 <md-select required="" name="letter" ng-model="letter" class="ng-pristine md-default-theme ng-invalid ng-invalid-required ng-touched" tabindex="0" aria-disabled="false" role="combobox" aria-expanded="false" id="select_3" aria-required="true" aria-invalid="true">
    <md-select-value class="md-select-value md-select-placeholder" id="select_value_label_0">
        <span>/* text should goes here */</span>
        <span class="md-select-icon" aria-hidden="true"></span>
    </md-select-value>
</md-select>

表单是由输入文本,textarea和提交按钮组成的ContactForm。

桌面模式(Chrome,Firefox,IE,...)中运行没有问题:触发提交事件并且ajax调用运行良好。

当我在显示键盘时提交在移动设备(Android,Ios,...)中时,表单不会被提交。 如果我隐藏键盘,然后点击提交按钮,表单将被提交,并且ajax调用正常。

问题是在移动设备中显示键盘时未触发提交事件。

您可以在屏幕截图中看到键盘显示(绿色按钮是提交): The button is green

1 个答案:

答案 0 :(得分:0)

(我遇到了同样的问题,但是在不同的情况下,我对此进行了不同的描述,并发布了一个新问题:Android Chrome click after keyboard entry not working

解决方案归结为这段JavaScript,它会在输入元素/文本区域上触发document.querySelectorAll('input, textarea').forEach((input) => { input.addEventListener('input', (e) => { e.target.blur(); e.target.focus(); }) })

PATH