drupal表单IDs

老葛的Drupal培训班 Think in Drupal

Drupal需要有一些方式来唯一的标识表单,这样当一个页面有多个表单时,它就可以判定被提交的是哪一个表单,并且可以将表单与处理该表单的函数关联起来。为了唯一的标识表单,我们为每个表单分配了一个表单ID。在drupal_get_form()的调用中,所用的就是ID,如下所示:
 
drupal_get_form('mymodulename_identifier');
 
对于大多数表单,其ID的命名规则为:模块名字+一个表述该表单做什么的标识。例如,由用户模块创建的用户登录表单,它的ID为user_login。
Drupal使用表单ID来决定表单的验证、提交、主题函数的默认名字.另外,Drupal使用表单ID作为基础来为该特定表单生成一个<form>标签中的HTML ID属性,这样在Drupal中所有的表单都有一个唯一的ID。通过设置#id属性,你可以覆写该ID:
 
$form['#id'] = 'my-special-css-identifier';
    生成的HTML标签将会是这样的:
<form action="/path" "accept-charset="UTF-8" method="post"
id="my-special-css-identifier">
 
    表单ID作为名一个为form_id的隐藏域也嵌套在表单之中。在我们的例子中,我们选择formexample_nameform作为表单ID,这是因为它描述了我们的表单。从名称就可以看出,我们表单的目的是让用户输入他/她的名称。我们也可以将它命名为formexample_form,但是它的描述性不好----而且以后,我们可能还想再添加一个表单到我们的模块上。

Drupal版本: