Forms Zend表单-两个“选择”菜单;同步“;

Forms Zend表单-两个“选择”菜单;同步“;,forms,validation,zend-framework,select,sync,Forms,Validation,Zend Framework,Select,Sync,一段时间以来,我一直试图找到答案,但仍然一无所获。 有两个选择菜单,它们具有相同数量的选项和值。说 Select A "one"=>1 "two"=>2 "three"=>3 Select B "one"=>One "two"=>Two "three"=>Three Zend Form和validate是否有办法使它们“同步”。 因此,如果我选择SelectB=>3,它会自动选择SelectA=>3,反之亦然。 或者仅使用自定义验证器?JavaScript解

一段时间以来,我一直试图找到答案,但仍然一无所获。 有两个选择菜单,它们具有相同数量的选项和值。说

Select A
"one"=>1
"two"=>2
"three"=>3
Select B
"one"=>One
"two"=>Two
"three"=>Three
Zend Form和validate是否有办法使它们“同步”。 因此,如果我选择SelectB=>3,它会自动选择SelectA=>3,反之亦然。
或者仅使用自定义验证器?

JavaScript解决方案的工作原理如下:

  • 修改form.php

    $A->setOptions(数组('onchange'=>'mapIt(this.id));
    $B->setOptions(数组('onchange'=>'mapIt(this.id)')

  • 将下面的JavaScript函数添加到视图中
  • 函数mapIt(id){
    如果(id='A'){ document.getElementById('B').value=document.getElementById(id).value; }否则{ document.getElementById('A').value=document.getElementById(id).value; } }

    您可以在文章结束后使用
    if-isset-then-setvalue循环执行此操作,但如果您在文章结束前需要它,则需要javascript。