在我的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;
});
}
然而没有结果。
答案 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;
});
});