input通过键盘改变值会自动触发change事件,但通过js动态改变值后,不会自动触发,需要手动触发change事件。
1.通过js赋值后手动触发/手动监听
<input type="text" />
<button>赋值</button>
<script src="js/jquery.min.js"></script>
<script>
$(function(){
// 按钮点击事件
$("button").on('click', function(){
$("input").val("赋值成功");
});
// input值改变事件
$("input").on('change', function(){
$("button").after("<p>change事件触发</p>")
});
});
</script>
这里面的input值改变事件是没有触发的,想要让change事件也触发,需要手动触发change事件。
手动触发
// 按钮点击事件
$("button").on('click', function(){
$("input").val("赋值成功");
// 触发change事件
$("input").change();
});
手动监听
<body>
<input type="hidden" id="ttt" /><br/>
<select id="eee" >
<option>1</option>
<option>2</option>
<option>3</option>
</select>
</body>
<script type="text/javascript">
var ttt = document.getElementById("ttt");
var eee = document.getElementById("eee");
eee.οnchange=function (){
ttt.value=eee.value;
ttt.addEventListener("input",changeValue(),false);
}
function changeValue(){
alert(ttt.value);
}