簡體   English   中英

jQuery,Bootstrap-在模式隱藏上觸發click事件並在輸入中選擇文本

[英]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);
});

http://jsfiddle.net/SeanWessell/61sc4Ldr/

我發現應該使用hidden.bs.modal事件,而不是使用hide.bs.modal事件。 在這種情況下,腳本可以正常工作。

不確定您要引用的文本字段在哪里。 是否在模態元素中。 假設您已經在腳本中指定了文檔已經准備好了( $(document).ready(..) ,或者在html中創建了html元素后加載了該腳本),您可以嘗試調用$( "#name" ).focus(function() { $(this).select(); } ); 在關閉事件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM