Document.getElementById(update [0])为null

时间:2010-09-14 19:58:24

标签: jquery ajax

我在提交时遇到此错误,它确实正常发送但未通知用户已发送。

document.getElementById(update [0])为null

<script language="javascript">

function createRequestObject() {

var ro;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
    ro = new ActiveXObject("Microsoft.XMLHTTP");
}else{
    ro = new XMLHttpRequest();
}
return ro;
}

var http = createRequestObject();

function sendemail() {
var msg = document.contactform.msg.value;
var name = document.contactform.name.value;
var email = document.contactform.email.value;
var subject = document.contactform.subject.value;
document.contactform.send.disabled=true; 
document.contactform.send.value='Sending....';

http.open('get', 'contact.php?msg='+msg+'&name='+name+'&subject='+subject+'&email='+email+'&action=send');
http.onreadystatechange = handleResponse;
http.send(null);
}

function handleResponse() {
if(http.readyState == 4){
    var response = http.responseText;
    var update = new Array();

    if(response.indexOf('|') != -1) {
        update = response.split('|');
        document.getElementById(update[0]).innerHTML = update[1];

    }
}
}
</script>

contact.php     

if(!isset($_GET['action']))
{
die("You must not access this page directly!"); 
}

$name = trim($_GET['name']); //The senders name
$email = trim($_GET['email']); //The senders email address
$subject = trim($_GET['subject']); //The senders subject
$message = trim($_GET['msg']); //The senders message

mail($to,$subject,$message,"From: ".$email."");
echo 'response|Thank you '.$name.', 
?>

3 个答案:

答案 0 :(得分:3)

编辑,对于更新的问题: Your site appears to work对我来说,请确保使用 Ctrl + F5 清除缓存你还有问题。

您的if()支票有点偏,这是:

if(response.indexOf('|' != -1)) {

应该是:

if(response.indexOf('|') != -1) {

目前你得到了误报,if里面的代码甚至不应该执行......但它们是:)

答案 1 :(得分:0)

update行前getElementById的价值是多少?使用console.log或等效项来查看数组是否包含您期望的内容。

答案 2 :(得分:0)

这意味着无论你在responseText中返回什么,都不是你想要的。

如果你要回来了

“updatePanel | my message”

您需要在页面上添加以下内容:

<div id="updatePanel">your message will go here</div>

因此,请通过警告或检查responseText来检查您的返回值。 Firebug会帮助你。