0

いくつかの異なるテーブルを管理するためのさまざまなフォームを備えた作業用バックエンド モジュールがあります。フォームの 1 つに、ラジオ ボタン グループ ( radiosMagento の要素) があります。このラジオ グループのコード スニペットは次のとおりです。

//radio group
$fieldset->addField('radio_group', 'radios', array(
        'label'     => Mage::helper('banners')->__('Select campaign type'),
        'name'      => 'title',
        'onclick'   => '',
        'onchange'  => '',
        'value'     => '1',
        'values'    => array(
                        array('value'=>'1','label'=>'Imagen'),
                        array('value'=>'2','label'=>'HTML'),
                        array('value'=>'3','label'=>'Producto'),
                        ),
        'disabled'  => false,
        'readonly'  => false,
        'tabindex'  => 3
));

onclikonchangeイベントを管理する方法を見つける方法がありません。コードをどこに追加する必要がありますか? 実行するアクションは簡単です。選択したラジオ ボタンに応じて、同じページの他のコントロールを有効/無効にするだけです。

提案、サンプル コード、チュートリアルはありますか? たくさんのサンプルを見つけましたが、すべてが新しい管理フォームをセットアップする方法を参照しており、すでに一度ではなく数回行っています。

4

2 に答える 2

2

この問題を回避する方法の 1 つは、update layout.xml をモジュール (または local.xml) に追加することです。

2 つの異なる方法を使用して、js を layout.xml に含めることができます。唯一の違いは、js ファイルを配置する必要がある場所です。

Javascript の場所: /js/your_js_file.js

<adminhtml_xxx_yyy>
    <reference name="head">
        <action method="addJs"><script>your_js_file.js</script></action>
    </reference>
</adminhtml_xxx_yyy>

また

Javascript の場所: /skin/adminhtml/default/default/your_js_file.js

<adminhtml_xxx_yyy>
    <reference name="head">
        <action method="addItem"><type>skin_js</type><name>your_js_file.js</name></action>
    </reference>
</adminhtml_xxx_yyy>

各ラジオ ボタンに CSS クラス名を追加する

$fieldset->addField('radio_group', 'radios', array(
   ......
   'class'     => 'campaign_type',
   ....
));

your_js_file.js ( http://fiddle.jshell.net/hX2u3/ )

$$('.campaign_type').each(function(curInput) {
   Event.observe(curInput, 'click', function() {
        alert('some click logic goes here');
    });
   Event.observe(curInput, 'change', function() {
        alert('some change logic goes here');
    });
});​
于 2012-11-08T17:12:31.110 に答える
2
$fieldset->addField('use_color_filter', 'select', array(
            'label'     => Mage::helper('gtfilter')->__('Usar filtro de cores'),
            'class'     => 'required-entry',
            'required'  => true,
            'name'      => 'use_color_filter',
            'onclick' => "javascript: alert('a');",
            'onchange' => "",
            'value'  => Mage::registry("use_color_filter"),
            'values' => array("0" => "Não", "1" => "Sim"),
            'after_element_html' => '<small style="color : red; font-weight : bold;" >Requer que o módulo de cores esteja instalado! Lembrando que o atributo de cores deve estar habilitado para buscas avan�adas! </small>',
            'tabindex' => 1
    ));

私はそれを試してみましたが、うまくいきました。

于 2012-11-08T16:49:22.023 に答える