[英]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事件,我應該使用hidden.bs.modal事件。 在這種情況下,腳本可以正常工作。
.focus由於某些原因而無法使用,在完全卸載模式之前,您將無法使元素聚焦。 我什至嘗試將事件更改為hidden.bs.modal之后觸發的hidden.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);
});
我發現應該使用hidden.bs.modal事件,而不是使用hide.bs.modal事件。 在這種情況下,腳本可以正常工作。
不確定您要引用的文本字段在哪里。 是否在模態元素中。 假設您已經在腳本中指定了文檔已經准備好了( $(document).ready(..)
,或者在html中創建了html元素后加載了該腳本),您可以嘗試調用$( "#name" ).focus(function() { $(this).select(); } );
在關閉事件中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.