2.6 为表单元素添加Class

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

问题还是存在,表单元素过长了,我们以用户名表单元素为例,分析一下目标代码和当前输出。

目标代码:

<label><input class="wbk" type="text" name="textfield" id="textfield" /></label>

当前输出:

<label>

<input id="edit-name" class="form-text required" type="text" maxlength="60" size="60" value="" name="name" tabindex="1">

</label>

在这里,idname我们是必须要要使用Drupal默认的了,不然的话,就没有办法正常工作了。我想,我们应该把目标代码里面的class="wbk"给加上。这是我们修改后的form_alter函数,粗体表示新增的。

function snt_form_alter(&$form, &$form_state, $form_id) {

  if ($form_id == 'user_login') {      

$form['name']['#theme_wrappers'] = array();

$form['pass']['#theme_wrappers'] = array();

$form['submit']['#theme_wrappers'] = array();

$form['remember_me']['#theme_wrappers'] = array();

$form['name']['#attributes'] = array('class' => array('wbk'));

$form['pass']['#attributes'] = array('class' => array('wbk'));

$form['actions']['submit']['#attributes'] = array('class' => array('anniu2'));

  }

}

现在,样式正常了。

1.png 

还有问题,登陆按钮,里面的文字重复显示了,因为背景图片里面已经包含了这两个字。我们在form_alter里面增加这么一行代码:

$form['actions']['submit']['#value'] = t('');

这样,就可以完全使用背景图片的样式了。

复选框后面的文本被去掉了,没有关系,我们直接在user-login.tpl.php里面,给加上来。这是修改后的对应代码:

<td><?php print $remember_me;?><span class="zidong">两周内自动登录</span></td>

现在,使用匿名用户访问登录页面,样式已经完全满足我们的需要了。

2.png


Drupal版本: