2017-08-22 11 views
0

変数valioを呼び出す際に問題があります。入力にテキストを入力して呼び出した後、コンソールは「今登録済み 未定義」を返します。呼び出すクラス関数が期待どおりに応答しない

私はこのタイプの呼び出しでは経験はありますが、これまでに何も起こりませんでした。

var name = document.getElementById("name"); 
var email = document.getElementById("email"); 
var comment = document.getElementById("comment"); 

class User{ 
constructor(username,comment,email){ 
    this.username = username; 
    this.comment = comment; 
    this.email = email; 
    } 
    register(){ 
    console.log(this.username + this.comment + " is now registered"); 
    } 
} 

var valio = new User(name.value , comment.value, email.value); 

     <input id="name" type="text" value=""><br> 
     <input id="email" type="text" value=""><br> 
     <input id="subject" type="text" value=""><br> 
     <input id="comment" type="text" value=""><br> 
+0

'name'は' document.querySelector( '#name') 'のようにsomethinkを保存しますか? – Roman

+0

あなたは何を期待しているか明確にすることはできますか?タイトルでは、「クラス関数を呼び出す」と言っていますが、質問の本文には「変数を呼び出す」と言っています。あなたは何を呼んでいますか、何を得ることを期待していますか? –

+0

いいえ、上の変数 – kukata11

答えて

0

name変数がjavascriptのキーワードと競合しているようです。他の名前に変更してみてください。

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

次に、nameInput.valueをコンストラクタに渡します。

0

名前入力フィールドへの参照をnameという変数に入れます。しかし、nameはすでに文字列型のグローバル変数として定義されます:それはおそらく

https://developer.mozilla.org/en-US/docs/Web/API/Window/name

をオーバーライドすることはできません。 unameに変数nameウル

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

var valio = new User(username.value , comment.value, email.value); 
+0

こんにちは、私は関数を作成しました 関数wut(){ console.log(uname.value); } それを出力しますが、変数で呼び出すと、私には定義されません。 – kukata11

1

を変更:

は、変数名を変更してみてください。

var uname = document.getElementById("name"); 
var email = document.getElementById("email"); 
var comment = document.getElementById("comment"); 

class User{ 
    constructor(username,comment,email){ 
    this.username = username; 
    this.comment = comment; 
    this.email = email; 
    } 
    register(){ 
    console.log(this.username + this.comment + " is now registered"); 
    } 
} 

var valio = new User(uname.value , comment.value, email.value); 

    <input id="name" type="text" value=""><br> 
    <input id="email" type="text" value=""><br> 
    <input id="subject" type="text" value=""><br> 
    <input id="comment" type="text" value=""><br> 
+0

多分私はテキストを入力に入れる方法です。なぜなら、値のコードにいくつかのテキストを置くと、それを印刷しますが、ブラウザの入力の空白のスペースにそれを入力すると、私の恐ろしい英語のために申し訳ありません、それは私の母国ではありません.. – kukata11

関連する問題