对象不支持javascript中的此属性或方法

时间:2011-11-11 07:30:41

标签: javascript

function add(id)
{
    var tempid=document.getElementById(id);
    var patterm=/@/;
    var value=tempid.match(patterm);  // This is where I'm getting the error
    if(value==null)
    {
        var length=document.getElementById(id).length();

        tempid=tempid.setchatAt(length+1,'@messung.com');
    }
    else
    {
    }
}   

3 个答案:

答案 0 :(得分:1)

tempid是您需要将其值与模式匹配的对象。做类似document.getElementById(id).value;

的事情

长度也是属性而不是方法。并且需要在document.getElementById(id).value;上调用它,即字符串。不在对象上。

答案 1 :(得分:1)

在这一行上,你试图在一个永远不会工作的DOM对象上进行字符串匹配。

var value=tempid.match(patterm);

这可能不是你的意思。如果这是一个输入字段(看起来你正在测试电子邮件地址中的'@'),那么你需要获取输入字段的值,而不仅仅是DOM对象。使用正则表达式搜索字符串中的一个字符也是低效的。这是您的功能的清理版本:

function add(id)
{
    var val = document.getElementById(id).value;
    // if no '@' in string, add default email domain onto the end
    if (val.indexOf('@') == -1)
    {
         val += '@messung.com';
    }
    else
    {

    }
} 

答案 2 :(得分:0)

    function add(id)
    {
       var tempid=document.getElementById(id);
       var patterm=/@/;
       var value=tempid.value.match(patterm);  // use value property of the Dom Object
       if(value==null)
       {
          var length=tempid.value.length(); //Call  lenght on the value of object 

          tempid.value = tempid.value.setchatAt(length+1,'@messung.com'); //set proper value
       }
       else
       {

       }

    }