我有一个第三方JavaScript的一个按钮被点击以下面的脚本时改变文本框的值:handle onchange由第三方javascript触发?
$("#button").click(function (e) {
//Code in this function is from a third party source and i can't modify it!
var elt = $("#text").get(0);
elt.value = "test";
if (document.createEventObject) {
elt.fireEvent("onchange");
} else if (document.createEvent) {
var e = document.createEvent("HTMLEvents");
e.initEvent("change", true, true);
elt.dispatchEvent(e);
}
});
但是,这似乎并没有引发$.change
所以如何将我发现这个事件?
限制:我无法修改第三方javascript,我无法修改文本框的html。
以下不工作:
$("#text").change(function() {
alert("Change!");
});
全面测试来源:
<!DOCTYPE html>
<meta http-equiv="X-UA-Compatible" content="IE=10" />
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test</title>
<script src="Scripts/jquery-1.11.2.js"></script>
<script>
$(document).ready(function() {
$("#text").change(function() {
alert("Change!");
});
$("#button").click(function (e) {
//Code in this function is from a third party source and i can't modify it!
var elt = $("#text").get(0);
elt.value = "test";
if (document.createEventObject) {
elt.fireEvent("onchange");
} else if (document.createEvent) {
var e = document.createEvent("HTMLEvents");
e.initEvent("change", true, true);
elt.dispatchEvent(e);
}
});
});
</script>
</head>
<body>
<input id="text" type="text" onchange="javascript:alert('onchange')" />
<input id="button" type="button" value="Test" />
</body>
</html>
目标浏览器IE11,但解决方案应该在所有的浏览器!
这首先应该是作为其不解决方案,正如我所说的'限制评论:我不能修改第三方JavaScript和我不能修改HTML的textbox.' – Peter
我修改回答。 – Tschallacka
感谢您修改您的答案,但这种行为发生在我的例子中,那里没有重定向? – Peter