【问题标题】:zend addElements form onchange selectzend addElements 表单 onchange 选择
【发布时间】:2015-01-01 11:53:50
【问题描述】:

我尝试在选择元素的 onchange 上动态添加表单输入 Elemnt。 我有这个代码:

$this->addElement('select', 'nationality', array(
        'multiOptions' => array('CH' => 'Choose','IT' => 'Italy', 'other' => 'Other'),
        'required' => true,
        'label' => 'Nation',
        'filters'    => array('StringTrim'),
        'onChange' => '???'
    ));

我尝试粘贴我的新元素,而不是“???”

$this->addElement('select', 'nationality', array(
        'multiOptions' => array('CH' => 'Choose','IT' => 'Italy', 'other' => 'Other'),
        'required' => true,
        'label' => 'Nation',
        'filters'    => array('StringTrim'),
        'onChange' => '$this->addElement(
                         'text', 'codice_fiscale', array(
                         'required' => true,
                         'label' => 'Codice fiscale',
                         'required' => true
        ))'
    ));

我知道这是不正确的,但我没有找到任何关于它的文档。 如何添加元素 onchange 选择值?

提前致谢

【问题讨论】:

    标签: forms zend-framework select dynamic onchange


    【解决方案1】:

    如果可能的话,我会以不同的方式解决问题: javascript函数调用onChange。这将是语法正确的(并且,正如您所说,您编写的内容不正确,它将完全在 onChange 属性上打印出来,而不是通过 php 解释)。

    所以,我会写

    'onChange' => 'addElement()'
    

    然后声明处理新元素的javascript函数。或者,您可以在之前准备元素(如果您有固定数量),然后显示/隐藏它们。如果你没有太多元素可能会很方便,但如果元素太多,只需通过javascript添加所需的元素即可。

    伪代码 Javascript

    function addElement()
    {
        // add your element here, or show / hide it
    }
    

    就我的经验和类似案例来看

    (Zend_form_element_select onchange in zend framework,

    Zend Form: onchange select load another view content)

    如果你想处理“onChange”,你不会逃避 Javascript

    【讨论】:

    • 是的,我尝试了,但我的想法是在 Zend 平台中也声明其他字段,并通过选择的 onchange 来控制它。用这种方法的想法?
    • 据我所知,您将需要 javascript(例如 jQuery)来处理 onChange 事件。 (stackoverflow.com/questions/13126894/…) 所以,我会添加你想要的所有元素,将它们设置为广告禁用/不可见,并使用 javascript 函数来显示/启用你想要的元素
    • 好的,非常感谢@Gounemond。意大利信条中的 Potevamo parlare ^__^
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-11
    • 1970-01-01
    • 2015-07-24
    • 2013-02-01
    • 1970-01-01
    • 2018-02-13
    • 2014-07-21
    相关资源
    最近更新 更多