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

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

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

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

checkbox

checkboxは、GUIのエレメントです。また、HTML<input>タグのtype属性で扱われる値を指します。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

4985閲覧

JavaScriptでチェックされたcheckboxのidを取得して,隣にある無効化されているボタンを有効にしたい

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

checkbox

checkboxは、GUIのエレメントです。また、HTML<input>タグのtype属性で扱われる値を指します。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2015/09/14 08:35

編集2015/09/14 08:51

PHPでチェックボックスを複数個生成しています.
その時にチェックボックスをクリックした時のみ隣にある削除ボタンを押せるようにしたいのですが,私が書いたコードでは上から順番に押してくと2番目以降のボタンが有効にならない状態です.

php

1<?php 2echo "<div align='center'>"; 3 for ($i = 0 ; $i < 5 ; $i++) { 4 echo "<form method='POST' action='index.php'>"; 5 echo "<label for='chk_".$i."'>"; 6 echo "<input type='checkbox' class='chk' value='0' id='chk_".$i."' onClick='whichChk()'>"; 7 echo "</label>&nbsp;"; 8 echo "<input type='submit' value='削除' id='sub_".$i."'><br>"; 9 echo "</form>"; 10 } 11echo "</div>"; 12?>

チェックボックスにはchk_0chk_1chk_2,... のようにidを振っています

また,サブミットボタンにはsub_0sub_1sub_2,... のように振っています.

javascript

1var gl_chk = []; 2var gl_sub = []; 3 4$(function() { 5 var classCount = $('.chk').length; 6 for (var i = 0 ; i < classCount ; i++) { 7 gl_chk.push("#chk_" + i); 8 gl_sub.push("#sub_" + i); 9 $(gl_sub[i]).attr('disabled', 'disabled'); 10 } 11}); 12 13function whichChk() { 14 if ($('[class="chk"]:checked').prop('checked') == true) { 15 chkbox = $('[class="chk"]:checked').attr('id'); 16 var strchk = chkbox.split('_'); 17 var tr_chk = strchk[1]; 18 19 $(gl_chk[tr_chk]).change(function() { 20 if ($(this).is(':checked')) { 21 $(gl_sub[tr_chk]).removeAttr('disabled').focus(); 22 } else { 23 $(gl_sub[tr_chk]).attr('disabled' , 'disabled'); 24 } 25 }); 26 } 27}

JavaScript初心者なので汚いコードで申し訳ないのですが,教えてくださると幸いです.
よろしくお願いいたします.

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

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

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

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

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

guest

回答1

0

ベストアンサー

以下のような感じでどうでしょうか。
JavaScript側は一度配列に入れて処理する書き方のようでしたが
その管理が大変なので各要素の状態よって処理できるよう変更しました。

チェックボックスに「data-id」属性を追加

PHP

1<?php 2 echo "<div align='center'>"; 3 for ($i = 0 ; $i < 5 ; $i++) { 4 echo "<form method='POST' action='index.php'>"; 5 echo "<label for='chk_".$i."'>"; 6 echo "<input type='checkbox' class='chk' value='0' data-id='". $i. "' id='chk_".$i."'>"; 7 echo "</label>&nbsp;"; 8 echo "<input type='submit' class='delete-button' value='削除' id='sub_".$i."'><br>"; 9 echo "</form>"; 10 } 11 echo "</div>"; 12?>

全体的に変更しました…

JavaScript

1$(function(){ 2 // 初期表示時の処理 3 $('.chk').each(function(){ 4 // 現在のチェック状態からボタンのdisabledを切り替える 5 $('#sub_' + $(this).attr('data-id')).prop('disabled', !$(this).prop('checked')); 6 }); 7 8 // チェックされた時の処理 9 $('.chk').change(function(){ 10 // チェックボックスの「data-id」属性の値を頼りにボタンを特定 11 var $sub = $('#sub_' + $(this).attr('data-id')); 12 // ボタンのdisabled属性を反転 13 $sub.prop('disabled', !$sub.prop('disabled')); 14 }); 15});

投稿2015/09/14 09:15

notable

総合スコア415

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

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

退会済みユーザー

退会済みユーザー

2015/09/14 14:52

無事解決することが出来ました! わかりやすくコメントまで書いてくださりありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問