javascriptについて質問です。


現在、チェックボックスに全部チェックを入れるということをしたいのですが、実際に実行されずに困っております。

実際に行おうとしているページは以下になります。

ページ:http://oskuni7.sakura.ne.jp/page.php
コード:http://oskuni7.sakura.ne.jp/page.phps

参考にしたページは以下になります。

http://www5e.biglobe.ne.jp/access_r/hp/javascript/js_072.html

参考にしたページと同じように作ったつもりなのですが、一括チェックを行おうとしても反映されない状態が続きます。

PHPとJAVASCRIPTを一緒に動作する上で気をつけないといけないようなことなどがあるのでしょうか。

コードを見て頂き、どこが間違っているかわかるかたおりましたら、お手数をおかけしますがよろしくお願いいたします。

回答の条件
  • 1人5回まで
  • 登録:2009/03/31 03:03:33
  • 終了:2009/03/31 13:02:36

ベストアンサー

id:fester No.1

fester回答回数124ベストアンサー獲得回数202009/03/31 04:04:08

ポイント100pt

1.気になったのですが、Formタグがネストするのってありでしたっけ?

2.参考のソースは、document.form1.r1.length となっていますが、r1 はcheckboxの名前に該当します。

  aiomockさんのHTMLは、

    checkbox[]

    checkbox_2[]

  になっています。

3.次のようなスクリプトでいかがでしょうか。


// すべてチェック
var count;
function BoxChecked(check){
	var oElements = document.form1.getElementsByTagName("input");
	for (var i=0; i<oElements.length; i++){
		if(oElements[i].type=="checkbox"){
			oElements[i].checked = check;
		}
	}
}

id:aiomock

ご回答ありがとうございます。

プログラム実行されました^^。

checkbox[] だけをチェックする場合ってどのようにされるかわかりますでしょうか?

このプログラムですと

if(oElements[i].type=="checkbox"){

oElements[i].checked = check;

やはりここをいじるのでしょうか

2009/03/31 11:58:41

その他の回答(1件)

id:fester No.1

fester回答回数124ベストアンサー獲得回数202009/03/31 04:04:08ここでベストアンサー

ポイント100pt

1.気になったのですが、Formタグがネストするのってありでしたっけ?

2.参考のソースは、document.form1.r1.length となっていますが、r1 はcheckboxの名前に該当します。

  aiomockさんのHTMLは、

    checkbox[]

    checkbox_2[]

  になっています。

3.次のようなスクリプトでいかがでしょうか。


// すべてチェック
var count;
function BoxChecked(check){
	var oElements = document.form1.getElementsByTagName("input");
	for (var i=0; i<oElements.length; i++){
		if(oElements[i].type=="checkbox"){
			oElements[i].checked = check;
		}
	}
}

id:aiomock

ご回答ありがとうございます。

プログラム実行されました^^。

checkbox[] だけをチェックする場合ってどのようにされるかわかりますでしょうか?

このプログラムですと

if(oElements[i].type=="checkbox"){

oElements[i].checked = check;

やはりここをいじるのでしょうか

2009/03/31 11:58:41
id:rryu No.2

りゅう回答回数30ベストアンサー獲得回数22009/03/31 10:25:30

ポイント35pt

このJavaScriptはform1という名前の付いたform要素の中にあるチェックボックスを操作します。

今は以下のように名前が付いていないので

<FORM method="POST"action="<?php echo $_SERVER['PHP_SELF'];?>">

これを以下のようにname属性を追加すれば動くようになります。

<FORM name="form1" method="POST"action="<?php echo $_SERVER['PHP_SELF'];?>">
id:aiomock

ご回答ありがとうございます。

2009/03/31 11:11:13
  • id:aiomock
    <form> が入れ子になっていたので、rryuさんにご指摘いただいたように

    <FORM name="form1" method="POST"action="<?php echo $_SERVER['PHP_SELF'];?>">

    のようにひとつにまとめました。

    また最初のプログラムコードが

    var count;
    function BoxChecked(check){
    for(count = 0; count < document.form1.checkbox.length; count++){
    document.form1.checkbox[count].checked = check; //チェックボックスをON/OFFにする
    }
    }

    この様になっていましたので変えた所 実行できました^^。
  • id:fester
    var oElements = document.form1.getElementsByName("checkbox[]");
    for (var i=0; i<oElements.length; i++){
    oElements[i].checked = check;
    }
    // こんなじゃないでしょうか
  • id:aiomock
    fester さん

    ご回答ありがとうございます。

    実行してみましたが、うまく機能しませんでした。

    チェックボックスを二つ置いてあることが問題なのでしょうか・・・。

    詳しい方おりましたらよろしくお願いいたします。
  • id:fester
    // .form1をとってみてください。
    var oElements = document.getElementsByName("checkbox[]");
    for (var i=0; i<oElements.length; i++){
    oElements[i].checked = check;
    }
  • id:aiomock
    fester さん

    実行できました。

    真にありがとうございます^^。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません