how set checked within form input radio field? form field added using custom form element. value of field isn't consistent.
my custom form element returns 1 element. radio input field. need checked each , every time form submitted. reason using instead of "hidden" field user see settings.
this custom form element
namespace member\form\element; use doctrine\orm\entitymanager; use zend\form\element\radio; /** * class originallanguageisoradio * * @package member\form\element */ class originallanguageisoradio extends radio { /** * @var entitymanager $entitymanager */ protected $entitymanager; /** * @var string $translationkey */ protected $translationkey; /** * @var string $textdomain */ protected $textdomain; /** * @param entitymanager $entitymanager * @param string $translationkey * @param string $textdomain */ public function __construct( entitymanager $entitymanager, $translationkey, $textdomain ) { $this->entitymanager = $entitymanager; $this->translationkey = $translationkey; $this->textdomain = $textdomain; } /** * value options * * @return array * * @throws \exception */ public function getvalueoptions() { $array = []; $query = $this->entitymanager ->createquerybuilder() ->from( 'amdatabase\entity\theverse\translationsmasters', 't' ) ->select('t.languageiso') ->setmaxresults(1); $result = $query->getquery() ->getarrayresult(); if (is_array($result) && count($result) > '0') { foreach ($result $value) { if ( $value['languageiso'] == '' ) { $array['global'] = $value['global']; } else { $array[$value['languageiso']] = $value['languageiso']; } } } return $array; }
}
then call custom form element:
/** * original language iso */ $this->add( [ 'type' => 'member\form\element\originallanguageisoradio', 'name' => 'original_language_iso', 'options' => [ 'label' => 'original_language_iso' ], 'attributes' => [ 'id' => 'original_language_iso', ] ] );
this adds following form:
<input type="radio" name="original_language_iso" id="original_language_iso" value="en-us">
my desired output is
<input type="radio" name="original_language_iso" id="original_language_iso" value="en-us" **checked**>
you have 2 options: a) backend: attributes array must contain 'value' set element of values available, that's way auto-check radio input. example, be:
$this->add( [ 'type' => 'member\form\element\originallanguageisoradio', 'name' => 'original_language_iso', 'options' => [ 'label' => 'original_language_iso' ], 'attributes' => [ 'id' => 'original_language_iso', 'value'=>'something_here' ] ] );
b) front: use jquery check radio input. may with:
jquery('#original_language_iso').attr('checked','checked');