Использование отрицательного значения в Zend Form Element Radio вызывает ошибки HTML - PullRequest
0 голосов
/ 10 января 2011
$score = new Zend_Form_Element_Radio('score');
$score->setRequired(true)
    ->setSeparator('')
    ->setMultiOptions(array(1 =>'Positive', -1 =>'Negative'))
    ->setDecorators(array('ViewHelper'));

Отображается как

<label for="score-1">
    <input name="score" id="score-1" value="1" checked="checked" type="radio">Positive
</label>
<label for="score-1">
    <input name="score" id="score-1" value="-1" type="radio">Negative
</label>

Является ли тот факт, что он использует тот же идентификатор для входов и меток, нормальное поведение или ошибка?Как я могу это исправить?
Я не могу изменить значения, так как технически они должны быть такими:

Реальная проблема, которую это вызывает, заключается в том, что при нажатии отрицательного элемента вместо него выбирается положительный!Спасибо

1 Ответ

1 голос
/ 10 января 2011

Похоже, что стандартный ViewHelper декоратор для радиоуправления использует FormRadio view-helper. Когда этот помощник вида создает идентификатор, который он использует для элемента и элемента

Итак, мне кажется, что вместо использования стандартного ViewRenderer декоратора вам придется создать собственный декоратор, который вызывает ваш собственный FormRadio помощник вида.

Возможно, вы сможете избежать создания собственных декораторов и просмотра помощников, создав собственный настраиваемый фильтр AlNum, который разрешает эти знаки минуса. Хитрость заключается в том, чтобы установить этот путь только для этого одноразового использования, чтобы вы могли использовать обычный фильтр Alnum для других элементов.

В качестве альтернативы, вы могли бы, вероятно, обмануть ViewHelper, используя собственный помощник FormRadio, добавив вспомогательный путь к объекту представления, чтобы он загружал ваш собственный помощник представления вместо стандартного.

Просто некоторые идеи.

...