2011-11-11 36 views
0
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 
    { 
    } 
} 

答えて

1

tempidは、その値をパターンに一致させる必要があるオブジェクトです。 document.getElementById(id).valueのようにしてください。

また、長さはメソッドではなくプロパティです。また、それは文字列であるdocument.getElementById(id).value;で呼び出される必要があります。オブジェクトにはありません。

+0

ではなくtemidの私はのdocument.getElementById(ID).VALUEを使用しなければならないことを意味; ?? – user1041240

+0

そのdocument.getElementById(id)を参照すると、オブジェクトが得られます。オブジェクトの値は、valueプロパティを使用して取得できます。今では価値観に取り組んでいきたいと考えているからです。はい、そのように使用する必要があります。あなたの変数に何が入っているのかを警告するのが簡単なことがあります。値の有無にかかわらず警告(tempid)が発生します。 –

1

この行では、動作しないDOMオブジェクトに対して文字列一致を実行しようとしています。

var value=tempid.match(patterm); 

これはおそらくあなたがやっていることではありません。これが入力フィールドの場合(メールアドレスの '@'をテストしているように見えます)、DOMオブジェクトだけでなく、入力フィールドの値を取得する必要があります。また、正規表現を使用して文字列内の1文字を検索することも効率的ではありません。ここではあなたの関数のクリーンアップバージョンです:

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 
    { 

    } 
} 
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 
     { 

     } 

    } 
+0

これは、var length = temid.length();のmwの同じエラーを示しています。 – user1041240

+0

ありがとうございます – user1041240

関連する問題