Jquery,Bootstrap-触发模式隐藏上的点击事件,并在输入中选择文本
Jquery, Bootstrap - trigger click event on modal hide and select text in input
当模态关闭时,如何选择输入中的文本?下面的代码正在工作-当我单击输入字段时,会出现警报并选择文本。在模式隐藏事件上显示警报,但未选择文本。这是怎么回事?
JS代码:
// Sellect text
$('.user').on('click', '#name', function(){
$(this).select();
alert(1);
});
$('#myModal').on('hide.bs.modal', function(){
$('.user').find('#name').trigger('click');
});
HTML
<div class="user">
<p>Name
<input type="text" name="name" id="name" value="<?php echo $user->name ?>" readonly="readonly">
</p>
</div>
解决方案
我发现与其使用hide.bs.modal事件,不如使用hide.bs.modal
.focus由于某些原因无法工作,在模态完全卸载之前,它不允许您聚焦元素。我甚至尝试将事件更改为hidden.bs.modal,它在hide.bs.modal之后启动,但这无关紧要。
我找到的一个解决方法是使用setInterval并检查主体是否具有类"modal open",一旦它没有,则触发焦点事件
$('#myModal').on('hidden.bs.modal', function() {
var waitForClose = window.setInterval(function() {
if ($('body').hasClass('modal-open') == false) {
$('.user').find('#name').trigger('focus');
window.clearInterval(waitForClose)
}
}, 100);
});
http://jsfiddle.net/SeanWessell/61sc4Ldr/
我发现不应该使用hide.bs.modal事件,而应该使用hidden.bs.modal事件。在这种情况下,脚本正在工作。
不确定您所指的文本字段在哪里。是否在模态元素中。假设您已经在脚本中指定文档已就绪($(document).ready(..)
,或在html中创建html元素后加载该脚本),则可以尝试在关闭事件中调用$( "#name" ).focus(function() { $(this).select(); } );
。
相关文章:
- 是否可以为HTML5输入滑块触发oninput事件
- 使用onkeyup JS事件检查输入的值是否唯一
- 访问代码生成的输入元素上的keyup事件
- 无线电输入更改的jQuery事件未启动
- JS事件未更改输入禁用属性
- 在表单中的输入字段上提交事件
- 是否可以在数字输入框中的小按钮中添加事件侦听器
- 如何获取按钮点击事件输入的当前值
- 在放置目标时,输入并离开自定义事件
- 为什么不是't;输入“;此处触发事件
- 替代输入:基于按钮点击事件的文本更改处理程序
- 检查 jQuery 中的递增-递减事件输入类型编号
- Ng-model绑定触摸事件输入的值失败
- 从onkeyup事件输入触发JS函数
- 用于关键事件输入验证的Javascript正则表达式故障排除帮助
- Jquery在点击事件输入
- 如何检测javascript事件输入的变化
- 更改事件输入字符
- 触发多个事件/输入字段的功能并计算它们
- 组合组件上的onBlur事件(输入+按钮)