我有一個第三方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