質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

686閲覧

inputValue.valueがNULLになり値が取得できない原因が知りたい。

退会済みユーザー

退会済みユーザー

総合スコア0

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2022/03/11 06:08

編集2022/03/11 06:22

提示コードですが以下のエラーが出る原因がわかりません。htmlコードのコメント部のコードでエラーが発生します。同じやり方で別のコードでは動くのですが今回のコードではなぜかvalueの値がNULLになります。これはなぜでしょうか?

Error
Uncaught TypeError: Cannot read properties of null (reading 'value') at UserName_Check (script.js:59:28) at HTMLInputElement.onkeyup (signup.php?token=946d7bb36162b7324bc5799eebf18f3f772018b7bd02209ad63cb932dfeba67f&mail=xxxx@gmail.com:30:92) UserName_Check @ script.js:59 onkeyup @ signup.php?token=946d7bb36162b7324bc5799eebf18f3f772018b7bd02209ad63cb932dfeba67f&mail=xxx@gmail.com:30

html

1 2<!-- Page 3 --> 3<?php 4if( (isset($_GET["token"]) == true) && (isset($_POST["confirm"]) == false) ) 5{ 6 if( GetpreAccount_OK($_GET["token"]) == true) 7 { 8?> 9 10 11 <div class="center"> 12 <h1> アカウント情報 登録 </h1> 13 </div> 14 15 <form class="formInput" action="signup.php?token=<?php echo $_GET["token"] ?>" method="post"> 16 <input type="hidden" name="mail" value=<?php echo $_GET["mail"] ?> > 17<!-- --------------------------------------------------------------------------> 18 <div>ユーザー名</div><input type="text" name="name" id="name" onkeyup="UserName_Check()"><div style="display: inline-block" id="name_OK"> </div> 19<!-- --------------------------------------------------------------------------> 20 21 22 <div>ユーザーID</div><input type="text" name="id" id="id"><div style="display: inline-block" id="ID_OK"> </div> 23 <div>パスワード </div><input type="password" name="pass1" id="password_A"><div style="display: inline-block" id="password_A_OK"> </div> 24 <div>もう一度パスワード</div><input type="password" name="pass2" id="password_B"><div style="display: inline-block" id="password_B_OK"> </div> 25 <button type="submit" name="confirm" id="btn"> 確定 </button> 26 </form> 27 28 <script> 29 30 UserName_Check("name","name_OK"); 31 32 if( (Password_Check("password_A","password_A_OK") == true) && (Password_Check("password_B","password_B_OK") == true) ) 33 { 34 35 } 36 37 </script> 38 39 <?php 40 } 41 else 42 { 43 ?> 44 45 <h1> このURLは利用できません </h1> 46 47 <?php 48 } 49} 50?> 51

js

1 2/*#################### ユーザー名が利用できるかどうか? ####################*/ 3function UserName_Check(name,name_OK) 4{ 5 let inputValue = document.getElementById(name); 6 7 console.log(inputValue.value); 8 let match = /\d/; 9 if(match.test(inputValue.value) == true) 10 { 11 document.getElementById(name_OK).innerHTML = "<div style='color: green;'> 利用可能 </div>"; 12 } 13 else 14 { 15 16 document.getElementById(name_OK).innerHTML = "<div style='color: red;'> 利用不可 </div>"; 17 } 18}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

html

1onkeyup="UserName_Check()"

引数を渡していないため、namename_OKundefined という値になります。

あと、keyup イベントのイベントリスナは、<input>値がキーボード入力により更新されるよりも前に呼ばれるので、値のチェックのタイミングとしては不適切です。入力毎にチェックするならinputイベント、まとまった単位でチェックするなら changeイベント、フォーム送信時にチェックするなら <form>submit イベントを使います。

投稿2022/03/11 06:15

編集2022/03/11 07:51
int32_t

総合スコア20923

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/03/11 06:22 編集

なるほど。onkeyupのところに引数を設定したところ以下のエラーが出ますこれはなぜでしょうか? Uncaught TypeError: Cannot set properties of null (setting 'innerHTML') at UserName_Check (script.js:68:52) at HTMLInputElement.onkeyup (signup.php?token=946d7bb36162b7324bc5799eebf18f3f772018b7bd02209ad63cb932dfeba67f&mail=zzzz@gmail.com:30:105)
int32_t

2022/03/11 06:26

引数 name_OK の値がおかしくて getElementById() が null を返しています。
退会済みユーザー

退会済みユーザー

2022/03/11 06:29

なるほど。質問ですが複数のinputがある場合どうやって処理をわけるのでしょうか?
int32_t

2022/03/11 06:34

> 複数のinputがある場合どうやって処理をわけるのでしょうか? この質問には関係なさそうなので、自分の手でいろいろ試してみてから、新しい質問を立ててください。
退会済みユーザー

退会済みユーザー

2022/03/11 06:38

わかりました。質問ですが以下のようにしてもname_OK の値がおかしい理由がわからないのですが? <div>ユーザー名</div><input type="text" name="name" id="name" onkeyup="UserName_Check(name,name_OK)"><div style="display: inline-block" id="name_OK"> </div>
int32_t

2022/03/11 06:44

そのコードでは UserName_Check() に「変数 name と変数 name_OK」を渡しています。ここで指定すべきは「文字列 name と文字列 name_OK」です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問