0

我有一个具有各种形式的工作后端模块来管理几个不同的表。在其中一个表单上,我有一个单选按钮组(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
));

我无法找到如何管理onclik这些onchange事件。我需要在哪里添加代码?要执行的操作很简单,我将根据选定的单选按钮启用/禁用同一页面上的其他控件。

任何建议,示例代码,教程?我做了很多谷歌搜索但没有运气,我找到了很多样本​​,但都提到了如何设置新的管理表单,我已经做过几次了。

4

2 回答 2

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 回答
2

解决此问题的一种方法是将更新 layout.xml 添加到您的模块(或 local.xml)

您可以使用两种不同的方法将 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 回答