代码之家  ›  专栏  ›  技术社区  ›  emeraldjava

Zend Radio元素和Jquery选择器以获取ID和值

  •  0
  • emeraldjava  · 技术社区  · 16 年前

    因为我希望用户看到页面上的所有选项,否则我将使用复选框。 我正在从数据库查询填充无线电列表。

    $sectorname = new Zend_Form_Element_Radio('sectorname');
    $sectorname->setLabel('Sector');
    $sectorname->setSeparator(' ');
    $sectorTable = new Model_DbTable_Sector();
    $sectors = $sectorTable->listSectors();
    foreach($sectors as $sector)    
    {
        $sectorname->addMultiOption($sector->id,$sector->name);
    }
    $sectorname->setDecorators($decors);
    $this->addElement($sectorname);
    
    $sectorid = new Zend_Form_Element_Hidden('sectorid');
    $sectorid->setDecorators($decors);
    $this->addElement($sectorid);
    

    创建的html如下所示,您可以看到上面的扇区“id”和“name”被映射到标签值,并在html中输入“id”。还有一个隐藏的sectorid html元素。

    <tr>
    <th>Sector</th>
    <td>
    <label for="sectorname-1"><input name="sectorname" id="sectorname-1" value="1" type="radio">Accountants</label>
    <label for="sectorname-36"><input name="sectorname" id="sectorname-36" value="36" type="radio">Admin</label>
    <label for="sectorname-2"><input name="sectorname" id="sectorname-2" value="2" type="radio">Agriculture</label>
    <label for="sectorname-5"><input name="sectorname" id="sectorname-5" value="5" type="radio">Architects</label> 
    <label for="sectorname-11"><input name="sectorname" id="sectorname-11" value="11" type="radio">Army</label>
    <label for="sectorname-48"><input name="sectorname" id="sectorname-48" value="48" type="radio">Undefined</label></td>
    <input name="sectorid" value="" id="sectorid" type="hidden">            
    </tr>
    

    目前,我正在使用JQuery捕获label/radio元素上的click事件,并更新隐藏的sectorid值。

    ->addOnLoad('$("input[name=\'sectorname\']").click( 
        function() 
        {   
            $("#sectorid").val(this.val);
        });');
    

    我的问题是'sectorname'和'sectorid'元素都是数值。jquery有没有方法可以获取label元素的字符串值,并将其设置为表单中的隐藏元素?

    1 回复  |  直到 16 年前
        1
  •  0
  •   Mutation Person    16 年前

    试试这个

    $("#sectorid").val($(this).parent().text());