drupal javascript API&表格设定错误

时间:2011-03-05 15:16:54

标签: javascript api drupal drupal-fapi

1.有没有办法在客户端进行form_set_error,所以如果javascript中有错误验证它会设置错误并且不允许用户处理其他步骤? js可以被禁用,所以我要格外小心......

  1. 哪里有一个像drupal.t这样的drupal javascript函数引用的完整列表?

  2. 如何更改表单集错误的错误消息(默认错误如{fieldname ... field is}}?

  3. 我该如何处理显示在字段下方/上方/内联的错误?

1 个答案:

答案 0 :(得分:1)

JavaScript in Drupal,涵盖Drupal JavaScript API,AHAH表单以及您要查找的内容。 Quick start Guide非常好。

至于验证,你是对的,可以关闭Javascript。 JavaScript验证主要是为了可用性而完成的,因为用户不必等待POST表单以便接收错误消息。在提交表单之前,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.'));
  }
}

如果表单中的bar文本字段确实为空,当用户提交表单栏时会突出显示,'Foo不能为空'会出现错误信息,并且不会调用表单_submit hook。

对于JavaScript功能,Overview of Drupal JavaScript API文档包含您需要的大部分信息。