アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。

下記のように、nameを配列に設定してるCheckBoxについて、
func()内で、チェックされたCheckBoxを特定するには
どうすればよいでしょうか?

チェック済みのCheckBoxではなく、
func()を起動させた、チェック、チェック解除箇所です。

チェックする度、解除する度、変るはずです。

<input type="checkbox" name="arr[]" onClick="func()">
<input type="checkbox" name="arr[]" onClick="func()">
<input type="checkbox" name="arr[]" onClick="func()">
<input type="checkbox" name="arr[]" onClick="func()">

A 回答 (5件)

別解として(めんどくさい方法)idを指定してそこから取り出す。


(数字だけのIDは指定出来ません。アルファベットなどと組み合わせてください)

<input type="checkbox" name="arr[]" id="arr1" value="check1" onlick="func(this);">
<input type="checkbox" name="arr[]" id="arr2" value="box1" onlick="func(this);">

func(element){
var num=element.id.substr(3,element.id.length);
alert(num);
}

あらかじめJSONオブジェクトを作っておくと(valueから判断する場合)
var chklist={'check1':1,'box1':2};
func(element){
var num=chklist[element.value];
alert(num);
}

普通はANo.4のようにループさせて引数と同じオブジェクトかどうかを判断すると思います。


蛇足ながら<a>のname属性と混同される方も多いので、
<input>のname属性はHTML4.01、XHTML1.0、XHTML1.1ともsubmitとresetをのぞき必須(required)、submitとresetは任意
idに使用出来ない文字でもnameに使用出来る文字であれば、nameに指定することが出来ます
> DTDより、INPUTに関する部分
> <!-- attribute name required for all but submit and reset -->
自分でも必須というのは今になって初めて知りました。。。
    • good
    • 0

>arr[]の何番目かというのは判らないのでしょうか?



<html>
<head>
<script language="JavaScript"><!--
function func(obj) {
var a = document.getElementsByName("arr[]");
for(var i = 0; i < a.length; i++){
if(a[i] == obj){
alert(i);
}
}
}
// --></script>

</head>
<body>
<form>
<input type="checkbox" name="arr[]" onClick="func(this)">
<input type="checkbox" name="arr[]" onClick="func(this)">
<input type="checkbox" name="arr[]" onClick="func(this)">
<input type="checkbox" name="arr[]" onClick="func(this)">
</form>
</body>
</html>

この方法が正しいのかちょっと自信はありませんが、Windowsの IE6 Opera9 FireFox2 で動作確認しました。
    • good
    • 0

1.name属性は推奨されません。

id属性を使います。
 name属性はXHTML1.1で廃止されています。
 HTML4.0なら問題ないですが、id属性も併用するほうがよろしいでしょう。
2.id(name)属性で使える文字は、[a-zA-Z]、[0-9]、ハイフン(-)、アンダーライン(_)、コロン(:)、ピリオド(.)
 だけなので、"[]"を使ってはいけません。
 IDは普通の名前にして、onClickでfunc(this)などとして、JavaScript上でチェック対象をチェック
 すると思います。
    • good
    • 0

関数を呼び出すときにthisを引数で渡します。



サンプル
<html>
<head>
<script language="JavaScript"><!--
function func(obj) {
alert(obj.checked);
}
// --></script>
</head>
<body>
<form>
<input type="checkbox" name="arr[]" onClick="func(this)">
<input type="checkbox" name="arr[]" onClick="func(this)">
<input type="checkbox" name="arr[]" onClick="func(this)">
<input type="checkbox" name="arr[]" onClick="func(this)">
</form>
</body>
</html>
    • good
    • 0
この回答へのお礼

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

arr[]の何番目かというのは判らないのでしょうか?

お礼日時:2007/03/23 16:22

<input type="checkbox" name="arr[]" onClick="func(this)">



とすればthisが自分自身(この場合はinputタグ)なので、特定できるでしょう。
    • good
    • 0
この回答へのお礼

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

arr[]の何番目かというのは判らないのでしょうか?

お礼日時:2007/03/23 16:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!