プロが教えるわが家の防犯対策術!

JavaScript初心者です。

チェックボックスが5つ有り、任意のチェックボックスをチェックして実行ボタンを押すと、sentakuという名前のテキストボックスにチェックしたボックスの値が代入されるjavascriptの記述を教えて下さい。
例えば、1番目と3番目と5番目に、チェックを入れて実行すると、テキストボックスsentakuには「1,3,5」と表示されるとベターです。

A 回答 (3件)

sweetsixteenさんのをちょっと修正しました。


<HTML>
<SCRIPT language="JavaScript">
function setCheckBox2Text()
{
var strSep = null;
var flg = document.all.frm.chk1.length;
alert(flg);
for(i = 0; i< flg; i++){
if(document.all.frm.chk1[i].checked == true ) {
if(strSep!=null) {
strSep += ",";
}
strSep += (i+1);
}
}
// テキストボックスに表示
document.frm.txt.value = strSep;
}
</SCRIPT>
<BODY>
<FORM name="frm">
<INPUT name="chk1" type="checkbox" value="1">1
<INPUT name="chk1" type="checkbox" value="2">2
<INPUT name="chk1" type="checkbox" value="3">3
<INPUT name="chk1" type="checkbox" value="4">4
<INPUT name="chk1" type="checkbox" value="5">5
<BR>
<INPUT name="txt" type="text">
<BR>
<INPUT type="button" value="ボタン" onClick="javascript:setCheckBox2Text();">
</FORM>
</BODY>
</HTML>
    • good
    • 0
この回答へのお礼

おぉ!これこれ!これですよ!
実はチェックボックスは5つじゃなくて、Webページ内に100個ほどあるのです。
ループでまわさないとものすごく長いコードになるので頭痛めてたんです。

ビューティフル!ワンダフル!ステキダ!
ありがとうございました。

お礼日時:2005/06/17 09:38

チェックボックスオブジェクトのとり方は適当に変えてください。



function IsCheckd() {
var str;//結果表示用
var FirstFlag = 0;//前にカンマをうつかどうか
if (document.getElementById("チェック1").checked == ture) {
  str = "1";
  FirstFlag = 1;
}
if (document.getElementById("チェック2").checked == ture) {
  if (FirstFlag == 0) {
    str = "2";
    FirstFlag = 1;
  } else {
    str = str + ",2";
}
if (document.getElementById("チェック3").checked == ture) {
  if (FirstFlag == 0) {
    str = "3";
    FirstFlag = 1;
  } else {
    str = str + ",3";
}
if (document.getElementById("チェック4").checked == ture) {
  if (FirstFlag == 0) {
    str = "4";
    FirstFlag = 1;
  } else {
    str = str + ",4";
}
if (document.getElementById("チェック5").checked == ture) {
  if (FirstFlag == 0) {
    str = "5";
    FirstFlag = 1;
  } else {
    str = str + ",5";
}

docment.getElementsByName("sentaku")[0].value = str;
}
    • good
    • 0
この回答へのお礼

このコード読みやすいですね!

str = str + ",2";
とかVBぽくってうれしい。(私はVBを良く使うもので)

checked == ture
っていうのも読みやすい。

お礼日時:2005/06/17 09:34

こんな感じでしょうか。


ただ、教えられたものをそのまま使うだけでは
いつまでたっても向上しないと思いますので、
内容を吟味して、ご自分のものにするようにして下さいね!

*** ソースここから ***

<HTML>

<SCRIPT language="JavaScript">
function setCheckBox2Text()
{
var strSep = ",";// 区切り文字
var txtVal = "";// テキストボックスに表示される値

if (document.frm.chk1.checked){// チェックされているか?
txtVal += document.frm.chk1.value;// されている場合は、値を確保
}
if (document.frm.chk2.checked){
if (txtVal != "") {// 既に値がある場合は、区切り文字を追加
txtVal += strSep;
}
txtVal += document.frm.chk2.value;
}
if (document.frm.chk3.checked){
if (txtVal != "") {
txtVal += strSep;
}
txtVal += document.frm.chk3.value;
}
if (document.frm.chk4.checked){
if (txtVal != "") {
txtVal += strSep;
}
txtVal += document.frm.chk4.value;
}
if (document.frm.chk5.checked){
if (txtVal != "") {
txtVal += strSep;
}
txtVal += document.frm.chk5.value;
}

// テキストボックスに表示
document.frm.txt.value = txtVal;
}
</SCRIPT>

<BODY>
<FORM name="frm">

<INPUT name="chk1" type="checkbox" value="1">1 
<INPUT name="chk2" type="checkbox" value="2">2 
<INPUT name="chk3" type="checkbox" value="3">3 
<INPUT name="chk4" type="checkbox" value="4">4 
<INPUT name="chk5" type="checkbox" value="5">5

<BR>
<INPUT name="txt" type="text">

<BR>
<INPUT type="button" value="ボタン" onClick="javascript:setCheckBox2Text();">

</FORM>
</BODY>
</HTML>

*** ソースここまで ***
    • good
    • 0
この回答へのお礼

ありがとうございます。

>ただ、教えられたものをそのまま使うだけでは
>いつまでたっても向上しないと思いますので、
>内容を吟味して、ご自分のものにするようにして下さいね!

理解できるようがんばります。m(-_-;)m
いつも的確な答えをもらえるので、ついつい頼ってしまうんですよね。このサイト・・・

お礼日時:2005/06/17 09:32

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