API Javascript Drupal и ошибка набора форм - PullRequest
0 голосов
/ 05 марта 2011

1.Есть ли способ сделать form_set_error на стороне клиента, поэтому, если в проверке javascript есть ошибка, она установит ошибку и не позволит пользователю обработать другие шаги? JS можно отключить, поэтому я хочу проявить особую осторожность ...

  1. где полный список ссылок на функции Javascript drupal, таких как Drupal.t и прочее?

  2. как я могу изменить сообщения об ошибках ошибки формы (ошибки по умолчанию, такие как {fieldname ... field обязательна}}?

  3. как я могу сделать ошибки, которые будут отображаться ниже / выше / встроить поле?

1 Ответ

1 голос
/ 06 марта 2011

JavaScript в Drupal , охватывает API-интерфейс Drupal JavaScript, формы AHAH и все, что вы ищете. Краткое руководство по началу работы довольно хорошо.

Что касается проверки, вы правы, Javascript можно отключить. Проверка JavaScript в основном делается для удобства использования, поскольку пользователю не нужно ждать, чтобы отправить свою форму, чтобы получить сообщение об ошибке. JavaScript сообщает ему в режиме реального времени, например, если его пароль слишком слабый или адрес электронной почты недействителен перед отправкой формы.

Проверка JavaScript, однако, не подходит для безопасности. Вот где вам нужно будет выполнить проверку на стороне сервера. form_set_error позаботится о проверке на стороне сервера.

Итак, если у вас есть форма, похожая на:

function form_foo($form_state) {
    $form['foo'] = array(
      '#type' => 'textfield',
      '#title' => t('bar'),
      '#default_value' => $object['foo'],
      '#size' => 60,
      '#maxlength' => 64,
      '#description' => t('baz'),
    );
    return $form;
}

Проверка на стороне сервера будет выглядеть так:

function form_foo_validate($form, &$form_state) {
  if (empty($form_state['values']['foo'])) {
    form_set_error('foo', t('Foo cannot be empty.'));
  }
}

Если текстовое поле панели в форме действительно пусто, то, когда пользователь отправляет, панель формы будет подсвечена, появится сообщение об ошибке «Не может быть пустым», а ловушка формы _submit вызываться не будет.

Для функциональности JavaScript в документе Обзор Drupal JavaScript API содержится большая часть информации, которая вам понадобится.

...