如果我动态更改文本值,则文本框的onchange事件不起作用

时间:2016-10-21 07:50:18

标签: javascript jquery

Onchange事件当我更改文本框但当我试图动态更改文本框值时触发它并不解雇原因?

这是我的简单演示,当我点击按钮时我动态更改了文本框值,但仍然没有触发textbox onchange事件。

<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
</head>
<body>

<h1>My First Heading</h1>
<p>My first paragraph.</p>
<input type="text" id="txtno" value="" onchange="javascript:alert('Hi');">
<input type="button" id="btnadd" value="ClickMe">

<script>
$(document).ready(function(){
    $("#btnadd").click(function(){
        $("#txtno").val('Hello'); 
    });
});
</script>

</body>
</html>

2 个答案:

答案 0 :(得分:2)

通过JS更改输入值不会触发.onChange事件。您必须手动触发

$('#room_1').trigger('change');

我不知道您在代码中更改输入字段值的位置。

答案 1 :(得分:1)

&#39;变化&#39;只有在用户提交值更改时才会触发控件。如果您以编程方式对字段进行更改,则需要触发“更改”。事件

在这种情况下:

<script>
$(document).ready(function(){
    $("#btnadd").click(function(){
        $("#txtno").val('Hello').trigger('change');
    });
});
</script>