いいね!数

0

閲覧数
478

Xpagesにラジオボタングループコントロールを配置した場合、下記のコードで値を取得して未選択チェックをかけることができます。

 

getComponent("radioGroup1").getValue();

 

ところが、単一のラジオボタンコントロールを複数配置してオプションのラジオグループ名で同一の名前にしてグループ化した場合、上記のコードではエラーとなり値を取得することができません。

ラジオボタングループコントロールを使用できれば済む話なのですが、レイアウトの関係で単一のラジオボタンコントロールを複数配置するしかないのです。

 

複数のラジオボタンコントロールを1つにグループ化した場合の未選択チェック方法をご教示いただけないでしょうか。

よろしくお願いいたします。

 

 

サーバー情報: | クライアント情報: | 
カテゴリ:アプリ開発 - XPages | タグ:
  | 質問日時:2016/03/11 13:10:53

回答・コメント

いいね!数

0

一応できることはできたのですが、この動き、正しいのでしょうか。

 

1.ラジオボタンコントロールを3つ配置

2.それぞれに以下を設定

  ラジオボタン1  groupName:radioGroup1、id:radio1

  ラジオボタン2  groupName:radioGroup1、id:radio2

  ラジオボタン3  groupName:radioGroup1、id:radio3

3.getComponent("radio1").getValue();の戻りがNullなら、どのボタンも選択されていない。

 

3.は、てっきりgroupNameの方を使用するのかと思っていたのですが、それだとエラーになるのです。

ラジオボタン3を選択していた場合でもgetComponent("radio1").getValue();でラジオボタン3の値が返ってくるのが何とも腑に落ちず・・・。

回答日時:2016/03/11 14:27:27

いいね!数

1

eyeonly様

IBM様のこちらのページが参考になりませんでしょうか?

https://www-10.lotus.com/ldd/ddwiki.nsf/dx/%E3%83%A9%E3%82%B8%E3%82%AA%E3%83%9C%E3%82%BF%E3%83%B3%E3%81%AE%E5%80%A4%E3%82%92%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%B5%E3%82%A4%E3%83%89JavaScript%E3%81%A7%E5%8F%96%E5%BE%97%E3%83%BB%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B

 

-----一部抜粋-----

    <xp:radio text="One" id="radio1" groupName="group1" selectedValue="1"></xp:radio>

    <xp:radio text="Two" id="radio2" groupName="group1" selectedValue="2"></xp:radio>

    <xp:radio text="Three" id="radio3" groupName="group1" selectedValue="3"></xp:radio>


選択値の取得:getValue

ラジオボタングループの場合はオブジェクトが1つだったため、そのgetValueを呼べば値を取得できるというのは非常に直感的でした。

しかし、ラジオボタンコントロールを使用した場合には、選択肢の数だけオブジェクトがあるため、どのオブジェクトの getValue を呼べば値がとれるのかがはっきりしません。
どのオブジェクトの getValue を呼べばいいのでしょうか?

実はこの場合は、どのラジオボタンのオブジェクトの getValue() を呼んでもすべて選択されているラジオボタンの値が取得できます。

    // "Three" を選択している場合

    getComponent("radiop1").getValue(); // "3" が返る

    getComponent("radiop2").getValue(); // "3" が返る

    getComponent("radiop3").getValue(); // "3" が返る

 

"One"や"Two"のラジオボタンの getValue() を呼んでも "3" が返ってくるのは少し不思議な感じがするかもしれません。
あくまで getValue() は選択値が返ってくることに注意しましょう。

---------------

 

mak

回答日時:2016/03/11 14:53:06

いいね!数

0

mak様

返答が遅くなりました。

なるほど、どのラジオボタンのオブジェクトでもよいわけなんですね。ちょっと気持ち悪い気もしますが、これはこれで覚えておくしかないですね。

情報ありがとうございました。

回答日時:2016/03/17 11:07:02