我正在更新问题。为简化情况,我在 index.php 文件
中使用了此脚本<form name="f" action="index.php" method="post">
<input type="button" name="but" id="but" value="Retrieve">
<div id="div"></div>
<input type="submit" name="ok">
</form>
<script type="text/javascript">
document.getElementById("but").onclick = function(){
var http = false;
if (window.XMLHttpRequest){
http = new XMLHttpRequest();
} else {
http = new ActiveXObject("Microsoft.XMLHttp");
}
if (http){
http.open("POST","other.php",true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.onreadystatechange = function(){
if (http.status==200 && http.readyState==4){
document.getElementById("div").innerHTML = http.responseText;
}
};
http.send(null);
}
};
document.getElementById("y").onclick = function(){
alert("okaaay");
};
</script>
使用下面的脚本 other.php 文件
<?php
echo "<input type='text' name='y' id='y'>";
?>
Ajax脚本工作得很好,但我的问题是,当在index.php页面中检索到这个标记的输入元素时,使用第二个JavaScript代码我无法操作它,请帮助,谢谢:)
答案 0 :(得分:3)
更改代码,以便在other.php的响应返回后设置“y”onclick,如下所示:
http.onreadystatechange = function(){
if (http.status==200 && http.readyState==4){
document.getElementById("div").innerHTML = http.responseText;
document.getElementById("y").onclick = function(){
alert("okaaay");
};
}
};
否则你要在一个尚不存在的元素上设置该事件处理程序: - )
答案 1 :(得分:0)
我认为你应该发回一些信息:
$response = json_encode( array('type'=>'text','name'=>'y','id'=>'y') );
print $response;
然后当你收到它(作为类型application / json)时,使用javascript创建一个input
类型的新元素,然后使用你收到的json为它提供所需的属性。一旦创建并存储在变量中,就将该元素放在div中。