ajax调用时,document.getElementById获取不到值

今天写ajax的一个小例子的时候,document.getElementById居然获取不到值,后来找到了,对自己很是无语。
先看jsp页面

<body>
    <script type="text/javascript">
        var req = null;
        function test() {

            var name = document.all.name.value;
            //alert(name);
            req = new XMLHttpRequest();
            //设置回调函数
            req.onreadystatechange = callBack;
            //初始化req组件
            var url = "server.jsp?name=" +name;
            req.open("GET", url,"true");
            req.send(null);
        }
        function callBack() {
            if (req.readyState == 4 && req.status == 200) {
                var result = req.responseText;
                //document.all("myError").innerHTML=result;
                //$("#myError").append(result);
                document.getElementById("myError").innerHTML=result;
            }
        }
    </script>

    <br> 用户名:
    <input type="text" id="name" name="name" onblur="test();"><br>
    <div id="myError" name="myError"></div>
</body>

跳转的jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
    String name=request.getParameter("name");
    //out.print(name);
    if(name==null||name.trim().length()==0){
        out.println("用户名不能为空");     
    }else if(name.trim().toUpperCase().equals("ADMIN")){
        out.println("用户名不能使用"); 
    }else{
        out.println("OK!"); 
    }
%>

document.getElementById获取不到数据,果断改了ajax的代码。

var name = document.all.name.value;
document.all("myError").innerHTML=result;

发现可以有结果。马上采用alert测试,换成之前的代码。

    //var name = document.getElementById("name").innerText;
    //var name=document.getElementById("name").innerHTML;

这时才知道错误了,应该是

    var name = document.getElementById("name").value;

当然,ajax返回的依然要用:

document.getElementById("myError").innerHTML=result;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值