7

ラジオグループで選択したラジオボタンの値にアクセスするのに苦労しています。フォーラムや Web 上の他の投稿での議論に基づいて、さまざまなアプローチを試みました。残念ながら、それを機能させるのに十分な幸運 (またはスキル) がありませんでした。次の FormPanel 構成に基づいて、グループ「mainPhone」で選択したラジオの値を取得する方法を誰かが教えてくれることを期待していました。

ありがとう!

EXT-JS フォーラムでは何の助けも得られなかったのに、stackoverflow から応答を得ることができたことを示すために更新したかったのです。さすがスタックオーバーフロー!

マット

function createForm(elem) {
var myForm2 = new Ext.form.FormPanel({
  renderTo:elem,
  width:425,
  frame:true,
  style:"margin: 10px auto 10px auto;",
  items: [{xtype:'fieldset',
            title: 'Contact Info',
            autoHeight:true,
            items :[new Ext.form.RadioGroup({
                        fieldLabel: 'Main Phone',
                        vertical: false,
                        id:"mainPhone",
                        items: [
                            {boxLabel: 'Home', name: 'id-1', inputValue: 'H', checked:true},
                            {boxLabel: 'Work', name: 'id-1', inputValue: 'W'},
                            {boxLabel: 'Other', name: 'id-1', inputValue: 'O'}
                        ]    

                    }),
                  new Ext.form.TextField({
                    id:"frm_CreateCustomerHomePhone",
                    fieldLabel:"Home Phone",
                    width:275,
                    allowBlank:true
                 }),
                 new Ext.form.TextField({
                    id:"frm_CreateCustomerWorkPhone",
                    fieldLabel:"Work Phone",
                    width:275,
                    allowBlank:true
                 })
                  new Ext.form.TextField({
                    id:"frm_CreateCustomerOtherPhone",
                    fieldLabel:"Other Phone",
                    width:275,
                    allowBlank:true
                 })
    ]}]});              
}
4

8 に答える 8

10

勝手な推測ですが、以下はどうでしょう。

myForm2.getForm().getValues()['id-1'];
于 2009-01-05T21:59:06.800 に答える
5

ラジオ グループ自体のメソッドgetValue()は、チェックされているオブジェクトがある場合はそのオブジェクトを返し、そうでない場合は undefined を返します。

(ちなみに、ボックスにinputValueの代わりに値を設定しましたが、大きな違いはないと思いますが、おそらく最後の「getValue」でそうです)、extjs 3.0を使用しており、ラジオグループの設定はあなたのものとは少し異なります。

var checkedItem = Ext.getCmp('mainPhone').getValue();

if (checkedItem == undefined) return '';

return checkedItem.getGroupValue();
// The getGroupValue will return the value of the checked option in a group,
// unfortunately, it only seems to work on the items and not the radiogroup 
// itself
于 2009-08-14T15:28:46.413 に答える
3

この質問は古いことは知っていますが、参考のために追加しています。次のスニピットはExt2.2afaikに有効です。

Ext.getCmp("mainPhone").items.get(0).getGroupValue();
于 2009-09-19T18:32:14.140 に答える
3

Lo-Tanからの答えは私にとってはうまくいきます。私も extjs 2.2.1 を使用しています。私のように、ext.Form.Formpanel はなく、検索ボックスとラジオグループしかない場合があります。このコードを使用して、ラジオ グループから値を取得します。

私のラジオグループ:

var begrens_sok = new Ext.form.RadioGroup({  
fieldLabel: 'Begrens søket',  
columns: 1,
name: 'sokspecs',
id:'sokspecs',
 items: [  
      {boxLabel: 'Scientific name', name: 'sokspec', inputVale:'SN'},
      {boxLabel: 'Norsk navngruppe', name: 'sokspec', inputValue:'NNG'},
      {boxLabel: 'Norsk navnart', name: 'sokspec', inputValue:'NNA'},
      {boxLabel: 'Prosjektsøk', name: 'sokspec', inputValue:'PROJ'},
      {boxLabel: 'Fritekst søk', name: 'sokspec', inputValue:'FSOK', 'id':'sokspec', checked: true}
 ]  
    });

チェックされたラジオボタンの値を取得するには、次を使用します。

var radiovalue=  Ext.getCmp('sokspecs').items.get(0).getGroupValue()
于 2012-05-19T12:40:26.983 に答える
1

フィールドの特定の値を取得する場合は、使用します

myForm2.getForm().findField('id-1').getGroupValue();
于 2009-08-14T16:22:47.810 に答える
0

これが単純すぎるかどうかはわかりませんが、'inputValue' プロパティを使用して (Ext 3.3.1 で) 値にアクセスできました。

var radio = ...;
var value = radio.inputValue;
于 2011-01-27T15:21:53.603 に答える
0

MVC を使用している場合は、おそらく ID の使用を無視しようとします。したがって、変更イベントで値を取得するための解決策の1つは

change : function(radioButton, newValue, oldValue, eOpts){
        console.log(newValue.individual);
}
于 2013-11-27T13:18:36.627 に答える
-2
function get_radio_value()
{
    for( var i=0; i < document.myForm.mainPhone.length; i++ )
    {
       if( document.myForm.mainPhone[ i ].checked )
       {
           return document.myForm.mainPhone[ i ].value;
       }
    }
}
于 2009-01-05T22:02:03.377 に答える