Элемент формы SELECT, возвращающий неверное значение - PullRequest
2 голосов
/ 12 января 2012

Здравствуйте, у меня есть элемент выбора формы следующим образом:

<select name="color" id="color">
    <option value="1" label="Red">Red</option>
    <option value="2" label="Green">Green</option>
    <option value="3" label="Blue">Blue</option>
</select>

Когда я отправляю форму и проверяю $ _POST, я получаю:

массив ('color' => 'Red')

Где это должно быть:

массив ('color' => '1')

Я немного запутался, будет ли это как-то связано с атрибутом label?

---- Редактировать ----

dojo.addOnLoad(function() {
    dojo.forEach(zendDijits, function(info) {
        var n = dojo.byId(info.id);
        if (null != n) {
            dojo.attr(n, dojo.mixin({ id: info.id }, info.params));
        }
    });
    dojo.parser.parse();
});
var zendDijits = [{"id":"color","params":{"autocomplete":"true","required":"true","dojoType":"dijit.form.ComboBox"}},...

Ответы [ 2 ]

1 голос
/ 12 января 2012

Ваш код, кажется, действителен, но ярлык может что-то мешать.Поскольку вам это не нужно (вы используете тот же текст, что и текст между тегами параметров), я предлагаю вам удалить его.

Попробуйте сделать это следующим образом:

<select name="color" id="color">
  <option value="1">Red</option>
  <option value="2">Green</option>
  <option value="3">Blue</option>
</select>

Некоторые дополнительная информация об атрибуте label .

Определение и использование

Атрибут label указывает более короткую версию опции.

более короткая версия будет отображаться в раскрывающемся списке.

0 голосов
/ 12 января 2012

Хотя информация не была предоставлена ​​в вопросе, чтобы кто-либо мог ответить, решение проблемы было следующим:

Элемент формы создавался в Zend Framework как Zend_Dojo_Form_Element_ComboBox, и я нашел следующую информацию в документации .:

ComboBox возвращает значения метки, а не значения опции, которые может привести к разрыву в ожиданиях. По этой причине ComboBoxes не регистрировать автоматически валидатор InArray (хотя FilteringSelects делает).

Изменен элемент на Zend_Dojo_Form_Element_FilteringSelect, и проблема была решена, теперь работает нормально.

Спасибо @devdRew, который задал правильный вопрос, который навел меня на мысль о том, что dojo / dijit изменяет значение того, что публикуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...