在Drupal的form表单中使用js事件,比如onClick和onChange等,或者加载一些css样式等自己需要的杂七杂八的东西

我使用的是drupal 6 版本

 

由于Drupal使用自己的form表单机制来输出表单,如果想在表单中使用一些自己定义的css或者添加的js控件等可以这样做:

 

drupal的form表单有一个属性叫做#attributes,详见:http://api.drupal.org/api/drupal/developer--topics--forms_api_reference.html/6#attributes

 

 

这里我写一个调用js日历的小例子来说明一下如何使用,我这里调用的是onClick事件

 

菜单指向的方法函数:

 

 

function credit_test(){
       //指定我要加载的js文件
       $modulepath = drupal_get_path('module', 'credit');
       drupal_add_js($modulepath.'/js/date.js');

       $output = drupal_get_form('credit_test_form');

       return $output;
}

 

然后是表单:

 

function credit_test_form(&$form_state){

        $form['dateinput'] = array(
            '#id'=>'mydate',
            '#title' => t('输入日期'),
            '#type' => 'textfield',
            '#size' => '50',
            '#required' => TRUE,
            '#attributes' => array('onClick' => 'MyCalendar.SetDate(this)') 
         );

         $form['submit'] = array(
            '#type' => 'submit',
            '#value' => t('提交')
         );
    
         return $form;

}

 

在这里,菜单访问的函数我写了一个credit_test()方法过度而不是直接调用drupal_get_form方法,这样方便我加载我想要的js文件或者css文件,当然直接在credit_test_form加也可以,好了,闲话少说,看form函数中的dateinput元素,它是个textfield,用来输入日期,红字部分就是用到了#attributes属性,他本身可以是个数组,在后面可以加入你想放的东西,我这里加了一个onClick事件来触发我的日历,这样在实际输出的页面中这个textfield看起来会是这样:

 
 
[xhtml] view plain copy
  1. <input type="text"  name="dateinput" id="mydate" size="50" value="" onClick="MyCalendar.SetDate(this)" />  
onClick部分就是#attributes打出来的,效果: drupal form 当然如果有更多的其他属性,就在其所在的数组里继续写就可以了,比如 '#attributes' => array('onClick' => 'MyCalendar.SetDate(this)','onChange'=>'namecheck()','class'=>'dateinput',readonly=>true) 等等


 

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值