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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

4回答

13710閲覧

チェックボックスの値の取得

sanezane

総合スコア91

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/11/20 12:20

編集2019/11/20 13:02

要件

  • あるボタンが押されとき、チェックボックスのチェックされている数を数えたい

現状

初期値がfalse(ボタンを押したときの状態は関係なし)のチェックボックスの状態を取得する際にdocument.getelementbyIdで取得しようとするとCannot read property 'checked' of nullエラーが出てしまいます。初期値がtrueのチェックボックスをfalseにしたときはdocoument...で取得が可能です。初期値がfalseのチェックボックスはどうやったら取得できるのでしょうか?
アプリケーションはvueですが、共通部品の関係で素のjavascriptを使うしかない状況です。

初期値のbool値によって取得できるかできないかが決まる??

//初期値がtrueの時は以下で取得できるがfalseだと取得できない document.getElementById('row_0').checked

イメージ説明

チェックボックスの初期値がfalseの時に値を取得(というか初期値がどっちでも値を取得)できるような書き方はないでしょうか???

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/11/20 12:52

<input id="row_0" type="checkbox" /> これでdocument.getElementById("row_0")で普通に取れますし、 vue.jsのサンプルも見に行きましたがgetElementByIdで問題なく取れました。 idが間違っているのでは?(ソースがないので判別できませんが)
sanezane

2019/11/20 13:22

説明不足ですみません。 APIからチェックボックス値を取得してきて、boolの値がtrueの場合はご指摘の記述で取得できるんですが、falseをチェックボックスへ格納すると、その値をdocument.getelement...で取得するときにプロパティがnullである内容のエラーが出る。という事象です。 通常は、初期値がtrueだろうがfalseだろうがdocument.getele....で取得できるハズという認識で良いでしょうか??だとすると私が何か別のミスをしてしまっている可能性がある。。。という切り分けができます。。。
退会済みユーザー

退会済みユーザー

2019/11/20 14:09

trueかfalseかって、inputタグにcheckedつけるかつけないかくらいなので取得はできるはずです。 trueかfalseかで、inputタグそのものを表示したり消したりなどしていなければ・・・ そもそも、画像では開発者ツールを開いているのですから、直接その要素があるかどうか見てみては??
H40831

2019/11/20 14:38 編集

チェックボックスの初期値が直接の原因でないことは、自分でコード書いてみればわかるはずです。 「他のやり方を知りたいけど、コードは開示しない」ってスタンスで回答できるのはエスパーの方だけだと思います。 開示できる範囲(HTMLのinputタグの箇所とか)だけでももうすこし見せてもらえないとなんとも。
KoichiSugiyama

2019/11/20 14:37

値をAPIから取得してチェックボックスにセットしている個所や、チェック取得している周辺のコードを提示されてみてはいかがでしょうか。これだけの限られた情報では回答も付きにくいと思います。
m.ts10806

2019/11/20 23:07

再現できるコードがないと「そういうコードを書いてくれ」という依頼であり質問にはなってません
guest

回答4

0

エラーが出たら、エラーメッセージを読みましょう。
Cannot read property 'checked' of null
とあります。

「nullの'checked'が読めない」のです。
つまりあなたのコードは、2番目のチェックボックスではなく
nullに対してcheckedを読もうとしているからです。

javascript

1document.getElementById('row_0') 2document.getElementById('row_1')

を実行すればよくわかるでしょう。
row_1がないだけです。あなたの言う「素のJavaScript」の以前にあなたがコードミスをしていて、row_1が生成されていないのです。

初期値がtrueの時は以下で取得できるがfalseだと取得できない

そんなわけありません。
エラーが出たら即質問するのではなく、今回のような場合は以下をまず試すようにしてみてください。

  • row_0の初期値をfalseにして試す
  • row_1の初期値をtrueにして試す
  • document.getElementById('row_1')で試す

投稿2019/11/21 04:17

miu_ras

総合スコア902

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

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

0

ベストアンサー

初期値のbool値によって取得できるかできないかが決まる??

そんなことはありません。ちゃんとdocument内に当該のIDがあるか確認してください(Vue.jsで生成したものとなると、生成前のタイミングで取得しようとして失敗、ということも考えられます)。

投稿2019/11/21 00:42

maisumakun

総合スコア145183

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

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

sanezane

2019/11/25 12:16

おっしゃる通りIDの生成がうまくいってませんでした。お騒がせしました。以後、気をつけます。
guest

0

とりあえず、ベースだけ

javascript

1<input type="checkbox" id="row_0" checked> 2<input type="checkbox" id="row_1"> 3 4<script> 5console.log(document.getElementById('row_0').checked) 6document.getElementById('row_0').checked=false; 7console.log(document.getElementById('row_0').checked) 8console.log(document.getElementById('row_1').checked) 9</script>

とくに何の問題もないです
ソースの問題ではないなら、OSやブラウザなど動作環境の問題かも

投稿2019/11/21 00:39

yambejp

総合スコア114821

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

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

0

初期値がfalse(ボタンを押したときの状態は関係なし)のチェックボックスの状態を取得する際にdocument.getelementbyIdで取得しようとするとCannot read property 'checked' of nullエラーが出てしまいます。初期値がtrueのチェックボックスをfalseにしたときはdocoument...で取得が可能です。初期値がfalseのチェックボックスはどうやったら取得できるのでしょうか?

参考リンク貼っておきます。
的確な回答はコードを見ないとできません。

https://qiita.com/k_0214/items/672c5db1184a46b99273
http://blog.livedoor.jp/tsune55-work/archives/1751419.html
https://teratail.com/questions/190875

投稿2019/11/21 00:37

編集2019/11/21 00:39
kyoya0819

総合スコア10429

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問