コントロールの種別判定 – プログラミング – Home

コントロールの種別判定
 
通知
すべてクリア

[解決済] コントロールの種別判定


Javascript初心者
 Javascript初心者
(@Javascript初心者)
ゲスト
結合: 21年前
投稿: 8
Topic starter  

コントロールの種別判定処理を書いているのですが、
ラジオボタンについては、
コントロールオブジェクト.type
で取れず
コントロールオブジェクト[index].type
で取れるようですがどうもどのコントロールでも動くように共通化できません。

コントロールの種別判定ってありがちそうなので、参考ソースを探しています。
部品、ライブラリなのでこのようなコードを知っている方いますでしょうか。


引用未解決
トピックタグ
Web
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

よくわからないけど、ちゃんと type で取れますよ?
実際どんなHTMLになっているのでしょうか?

試したの(HTMLは微妙。)
<html>
<head>
<script type=text/javascript>
<!--
function test()
{
var form1;
var i;

form1 = document.forms[0];
for (i = 0; i < form1.length; ++i)
{
alert(form1[i].type);
}
}
//-->
</script>
</head>
<body OnLoad=test()>
<form>
<input type=text /><br />
<input type=password /><br />
<input type=radio /><br />
<input type=checkbox /><br />
<input type=button /><br />
<input type=submit /><br />
<input type=reset /><br />
<input type=file /><br />
</form>
</body>
</html>


返信引用
Javascript初心者
 Javascript初心者
(@Javascript初心者)
ゲスト
結合: 21年前
投稿: 8
Topic starter  

テストコードありがとうございます。

ちなみにHTMLは以下で
<input type=radio name=sei value=1>男
<input type=radio name=sei value=2>女

Javascriptは、簡単にすると以下のようにしています。
(seiという名前でアクセスしたい)

var ctrl = document.forms[0].sei;
①alert(ctrl.type);
②alert(ctrl[0].type);

結果は、①が、undefinedで、②がradioです。

var ctrl2 = document.forms[0][0];
alert(ctrl2.type);
こうすると、radioはとれるんですけど解決にならないし。

やりたいことは、指定した名前のコントロールの種別の判定なんですけど
radioの場合は、取得したコントロールが配列を持っているかどうかを
判別する必要がある?ということですかね。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

lengthで配列数を求めて切り分けるとか。

if (document.forms[0].radio1.length > 0)
{
for (i = 0; i < document.forms[0].radio1.length; ++i)
{
alert(document.forms[0].radio1[i].type);
}
}
else
{
alert(document.forms[0].radio1.type);
}


返信引用
Javascript初心者
 Javascript初心者
(@Javascript初心者)
ゲスト
結合: 21年前
投稿: 8
Topic starter  

上記でできました。
でもradioボタンだけ、このような処理をするところがちょっとかっこ悪いですね。
var ctrl = document.forms[0].sei;
常にctrl.typeが取れたら全部同じで書けるのに。

あきらめて、lengthをチェックします。何度もありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました