getElementById(x).value总是未定义?

时间:2013-03-12 15:17:34

标签: javascript html html5 getelementbyid

好的,先代码。页面代码可以在https://dl.dropbox.com/u/2628118/SMCH%20Portal%20-%20Home%20Page.htm查看,下面是我正在尝试运行的JS。

 function checkClear(id){
        var place = document.getElementById(id);
        var gplace = document.getElementById(id+'check');
        var patt1=new RegExp("^[a-zA-Z]+$");
        if(patt1.test(id.value)==true){
            gplace.innerHTML='<img src="img/gcheck.png" style="height:15px; width:auto;">';
            alert(id.value);
        }
        else{
            gplace.innerHTML='<img src="img/redx.png" style="height:15px; width:auto;">';
            alert(id.value);
        }
    }

我已经仔细检查了DOM,我已经尝试过表单导航,我没有使用JQuery,但我可以将其添加到我正在构建的更高版本中。我必须重新构建我已经构建的所有内容以便合并它,我会这样做,但还没有。

我的问题:我似乎无法抓住输入表单的值。我一直未定义,我无法对它进行良好的reg检查以确保它只是基本文本。用户错误预防,我只是偏执狂。我几个小时都在尝试这件事。我知道这可能很简单。请帮帮我!!

3 个答案:

答案 0 :(得分:4)

您无法获取ID的值,您只能获取具有该ID的元素的值,而不是id.value,请使用place.value

答案 1 :(得分:0)

试试这个:

function checkClear(id){
    var place = document.getElementById(id); 
    var gplace = document.getElementById(id+'check'); 
    var patt1=new RegExp("^[a-zA-Z]+$");
    if(patt1.test(place.value)==true){
        gplace.innerHTML='<img src="img/gcheck.png" style="height:15px; width:auto;">';
        alert(place.value);
    }
    else{
        gplace.innerHTML='<img src="img/redx.png" style="height:15px; width:auto;">';
        alert(place.value);
    }
}

答案 2 :(得分:0)

如果您使用jQuery库,则可以轻松使用它。

if(place.value.match(^[a-zA-Z]+$)==true){

否则你可以创建正则表达式对象并使用它。

 function checkClear(id){
    var place = document.getElementById(id);
    var gplace = document.getElementById(id+'check');
    if(place.value.match(^[a-zA-Z]+$)==true){
        gplace.innerHTML='<img src="img/gcheck.png" style="height:15px; width:auto;">';
        alert(place.value);
    }
    else{
        gplace.innerHTML='<img src="img/redx.png" style="height:15px; width:auto;">';
        alert(place.value);
    }
}