Zend_Dojo и ValidationTextBox - неверное сообщение не всегда появляется - PullRequest
0 голосов
/ 12 октября 2010

Я использую Dojo ValidationTextBox через Zend Framework следующим образом:

$form->addElement('ValidationTextBox', 'procedureName', array(
    'label' => _('Procedure Name'),
    'value' => $alarm->procedureName,
    'attribs' => array(
        'required' => true,
        'invalidMessage' => 'Required!'
    )
));

Аналогично, моя форма проверки настроена следующим образом:

if (formWidget.isValid()) {
    return true;
} else {
    alert('Invalid form.');
    return false;
}

Проверка формы предотвратитформа для отправки, если текстовое поле «methodName» пустое, но Dojo не помечает элемент формы как недействительный и не отображает «Обязательный!»сообщение.Фактически, он будет отмечать элемент формы только в том случае, если я щелкну по нему ранее (но, тем не менее, не отобразит недопустимое сообщение).

Как я могу восстановить поведение из этой страницы , гдеВы можете нажать кнопку «Отправить», не нажимая ранее ни на одно из обязательных полей, и Dojo пометит все обязательные поля?

Спасибо.

Ответы [ 2 ]

1 голос
/ 17 сентября 2014

Dojo позволяет декларативно и программно использовать многие из своих функций. При декларативном использовании используются стандартные элементы HTML с нестандартными атрибутами, которые анализируются при загрузке страницы. Может вызывать проблемы, поэтому Zend Framework по умолчанию использует программное использование; различные помощники вида сгенерируют javascript и передадут его в помощник вида dojo () для включения при рендеринге. Чтобы указать декларативное использование, просто вызовите статический метод setUseDeclarative ():

Zend_Dojo_View_Helper_Dojo::setUseDeclarative();

Когда в вашей форме инициализация. Это позволит включать любые нестандартные параметры, такие как «required» = «true», в ваш тег ввода. Функция dojox.validate будет работать.

Я использую

        <script type="dojo/method" event="onSubmit">
        if (this.validate()) {
            //return confirm('Form is valid, press OK to submit');
        } else {
            //alert('Form contains invalid data.  Please correct first');
            return false;
        }
        return true;
    </script>

внутри тегов формы в качестве моей настройки проверки.

0 голосов
/ 12 октября 2010

Ошибка состояла в том, что я должен был использовать formWidget.validate () вместо formWidget.isValid ().

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