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

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

ただいまの
回答率

90.51%

  • JavaScript

    16490questions

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

javascriptでdocument.write('<input type="radio" name="an[i]" value="1" />Yes');を解決したい

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 156

cat_tom

score 4

 前提・実現したいこと

Javascriptでアンケートを作っています。
10個の質問をYes,Noで答えるようにしたいのですが、うまくいきません。
プログラム中の name="an[i]" の値を取得できません。取得した値はすべて、an[i]となっている。
an[1],an[2]・・・・an[10] のような値を得たい。
このような書き方はできないのでしょうか。解決方法を教えてください。

■■な機能を実装中に以下のエラーメッセージが発生しました。

取得した値はすべて、an[i]となっている。

 該当のソースコード

for(i = 1 ; i < kamoku.length ; i++ ){
document.write(monndai[i]);
document.write('<input type="radio" name="an[i]" value="1" />Yes');
document.write('<input type="radio" name="an[i]" value="0" checked />No');
}

 試したこと

本やネット情報で解決を試みようとしましたが、目的の情報に出会えませんでした。

 補足情報(FW/ツールのバージョンなど)

ブラウザ Chrome、

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • mts10806

    2018/07/09 13:27

    kamokuのlengthをとっているのにmonndaiのi番目をとるのは用途が良くわかりません。どこにも「プログラム中の name="an[i]" の値を取得」のような書き方はされていないようですが。

    キャンセル

  • mts10806

    2018/07/09 13:29

    プログラムコード(およびエラーメッセージ)は質問内容としては最も重要な部分であるため、見やすくしていただけると助かります。<code>ボタン押下→「コード」部分にコードを貼り付け→「ここに言語を入力」に対象言語名記入(エラーメッセージの場合は不要)の手順で「コードハイライト化」してください。(質問編集画面ではリアルタイムでプレビューが表示されるので見ながら調整してください)

    キャンセル

回答 2

checkベストアンサー

+2

サブミットした先で何かをしたいのでしょうか?

document.write('<input type="radio" name="an[i]" value="1" />Yes');

仮にPHPで受けるとするとan[i]という名前で渡しても仕方ないですね

  • 「an[]」とするか
  • iを数値に展開した処理

document.write('<input type="radio" name="an['+i+']" value="1" />Yes');

のようにしないといけません。
ただ、document.writeでhtmlの書き換えをするのはちょっと全時代的なので
別の方法を検討した方がよいでしょう

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/09 13:33

    よく考えれば「an[]」にしてしまうとラジオボタンが他のものと
    競合しってしまうのでNGですね

    キャンセル

  • 2018/07/09 13:42

    次に質問あがってくるの確定ですね。

    キャンセル

  • 2018/07/09 13:44

    yambejpさん、ありがとうございます。mts10806さんも指摘されているので、document.writeでhtmlを書き換えることを別の方法で考えることにします。

    キャンセル

+1

変数を文字列内に埋め込むやり方が間違っています

document.write('<input type="radio" name="an[i]" value="1" />Yes');
document.write('<input type="radio" name="an[i]" value="0" checked />No');


document.write('<input type="radio" name="an['+i+']" value="1" />Yes');
document.write('<input type="radio" name="an['+i+']" value="0" checked />No');

ただ、そもそもdocument.write()を使うのが適当かどうかというところから検討が必要そうです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/09 13:44

    mts10806さん、ありがとうございます。解決しました。

    キャンセル

  • 2018/07/09 13:45

    yambejpさんから指摘があるようにこの[]付のnameのつけ方では正しく各質問に対する回答を選ぶ形になりません。
    チェックボックスの使い方となっています。

    キャンセル

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

  • ただいまの回答率 90.51%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • JavaScript

    16490questions

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