我有这个输入文本字段,我想选择(突出显示)前三个字符,当它发生变化时。
<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
记录到控制台,输出就不完全一样了。
有什么想法吗?
答案 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">