- PR -

javascriptでテーブルの行数を取得する方法

1
投稿者投稿内容
ポン
ベテラン
会議室デビュー日: 2006/02/15
投稿数: 98
投稿日時: 2006-10-12 11:46
いつもお世話になっております。
javascriptに関しましての質問なのですが

動的に行数が変わるtableの行数を取得し、その中のチェックボックスの正負を
チェックしたいと思っております。

そこで質問なのですが、tableの行数をどのようにして取得すればよいか
分かりません。

また、フォーム内に存在するチェックボックス全てのコントロールを取得することは
できるのでしょうか。

質問ばかりで申し訳ございません。
ご存知の方がいらっしゃればご教授よろしくお願い致します。
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2006-10-12 12:00
>チェックボックスの正負
正負とはなんでしょう…?

>tableの行数
rowsコレクションの長さで。

>フォーム内に存在するチェックボックス全てのコントロール
elements + type属性のチェック
getElementsByTagName + type属性のチェック
getElementsByName
あたりのどれかで。
ポン
ベテラン
会議室デビュー日: 2006/02/15
投稿数: 98
投稿日時: 2006-10-12 12:24
mioさんご回答ありがとうございます

>正負とはなんでしょう?
ture,falseの事です。表現が間違っていたようですみません。

>rowsコレクションの長さで。
試してみたいと思います。

>elements + type属性のチェック
>getElementsByTagName + type属性のチェック
>getElementsByName
>あたりのどれかで。

私の知識不足なのですが、ご回答いただいた上記を
どのように使用してよいか分かりません。
よろしければもう少し分かりやすくご回答いただけると幸いです。


ポン
ベテラン
会議室デビュー日: 2006/02/15
投稿数: 98
投稿日時: 2006-10-12 13:08
mioさんのご回答をもとに作成してみました。

var strlength;
var iCnt;
var chk;
var chk_flg;

strlength=テーブル.rows.length
for(iCnt=0;iCnt<strlength;iCnt++){
chkMail=eval('Form1.コントロール名+ (iCnt) + ');
if(chkMail.checked == true){
chk_flg='OK'
}else{
}
}
if(chk_flg != 'OK'){
alert('エラーメッセージ');
return false;
}else{
}

まだまだ訂正するところはあると思いますが、少しずつ訂正していきたいと思います
また今後のためにも
>elements + type属性のチェック
>getElementsByTagName + type属性のチェック
>getElementsByName
のほうを調べてたいと思います。

mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2006-10-12 14:01
引用:

ポンさんの書き込み (2006-10-12 12:24) より:
ture,falseの事です。表現が間違っていたようですみません。


そのまま和訳して「真偽」ですね。「チェックボックスの〜」というなら、「チェックの有無」がいいのかも。

引用:

よろしければもう少し分かりやすくご回答いただけると幸いです。


コレクションをループして、必要であればその中からチェックボックスのものを選んで処理する、という流れです。
チェックボックスに全て同じnameをつけているのなら、form.elements[名前]やgetElementsByName(名前)でコレクションが得られます。

行とチェックボックスは完全にひもづいてるみたいなので、今回はrows.lengthは不要のようですね。

引用:

if(chkMail.checked == true){


true/falseと比べるなら、(chkMail.checked) (!chkMail.checked)で良いですよ。

それから、どれか一箇所でもチェックがついていればいいようなので、chk_flg = 'OK'と同時にbreakしてやるといいのでは。

[ メッセージ編集済み 編集者: mio 編集日時 2006-10-12 14:03 ]
ポン
ベテラン
会議室デビュー日: 2006/02/15
投稿数: 98
投稿日時: 2006-10-12 16:45
mioさんご回答ありがとうございます。

>true/falseと比べるなら、(chkMail.checked) (!chkMail.checked)で良いですよ。

>それから、どれか一箇所でもチェックがついていればいいようなのでchk_flg= 'OK'と>同時にbreakしてやるといいのでは。

修正内容大変参考になります。有難うございます。
1

スキルアップ/キャリアアップ(JOB@IT)