使用JQuery Trigger在更改时选择INPUT文本字段中的特定文本

时间:2016-11-26 22:17:36

标签: javascript jquery input

我有这个输入文本字段,我想选择(突出显示)前三个字符,当它发生变化时。

<input class="descriptions" value="temp text"/>

我有这个脚本监控onChange事件......

$(document).on('change','.descriptions',function(event) {
    event.target.focus();
    event.target.setSelectionRange(0,3);
});

当我手动更改此输入文本字段中的文本时,脚本可以正常工作。但是,当我使用Jquery和链接触发事件时,它不会:

<a onMouseDown="javascript:$('.descriptions').val('test text');
$('.descriptions').trigger('change');">update input</a>

我以为它们实际上是一样的!我注意到如果我将event.target记录到控制台,输出就不完全一样了。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您没有将所有代码显示在一起,但此代码可以完成您的操作:

$('.descriptions').on('change', function(event){
  event.target.focus();
  event.target.setSelectionRange(0,3);
});

$('#lnkChange').on("click", function(){
  $('.descriptions').val("changed text");
  $('.descriptions').trigger("change");
});

$('#btn').on("click", function(){
  $('.descriptions').trigger("change");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="descriptions">
<a href="#" id="lnkChange">Change text of input</a>
<input type="button" id="btn" value="Trigger Change Event Only">