如何使用Zend Form中的JQuery从第一个下拉列表选择下拉列表中选择第二个值

时间:2014-04-07 14:13:54

标签: jquery zend-framework select dropdownbox

在我的Zend表单中,我有2个选择框,每个框在同一个表中选择不同的列。 如何使这两个项相关:如果选择了box1中的值,则选择box2中的匹配值,如果我在box2中选择了一个值,则选择box1中的匹配值。 这样我可以选择在任一列上选择。

我的表:

id代码说明

1个苹果

2 B香蕉

我的表单元素:

$objcode = new Zend_Form_Element_Select( 'code'); 
$objcode 
->setRequired(false)
->setAttrib('id','code');
->...more attributes to cleanup input
$this->addElement($objcode );

$objdescription = new Zend_Form_Element_Select( 'description'); 
$objdescription
->setRequired(true)
->setAttrib('id','description');
->...more attributes to cleanup input
$this->addElement($objdescription);

查看:

<td>Box1</td>
<td><?php echo $this->objForm->code?></td>
<td>Box2</td>
<td><?php echo $this->objForm->description?></td>

因此,如果我在box1中选择B,则box2中的选定值应更改为Bananas。如果我然后在box2中选择Apples,则box1中的值应更改为A.

我发现this link使用jQuery但没有成功,这只是一种方式(方框2依赖于方框1,但方框1不依赖方框2)。 我确定我需要在更改事件上使用JQuery来处理这个但我不确定是否将jQuery放在窗体或视图中以及如何?

我尝试在表单元素代码中添加此属性:

->setAttrib('onChange','javascript: OnChangeCode();')

在视图中添加:

function OnChangeCode()
    {
    JQuery("#code").change(function () {
        JQuery("#description")[0].selectedIndex = JQuery(this)[0].selectedIndex;
        });
    }

然而没有结果。

1 个答案:

答案 0 :(得分:1)

试试这个:

function OnChangeCode()
{
    jQuery("#description")[0].selectedIndex = jQuery("#code")[0].selectedIndex;
}

注意:我认为它是jQuery而不是JQuery

另一种方法,例如example

1 - 删除->setAttrib('onChange','javascript: OnChangeCode();')

2通过以下方式替换您的功能:

$(function() {
    $("#code").change(function() {
        $("#description")[0].selectedIndex = $(this)[0].selectedIndex;
    });
});