问大家一个问题 drupal7 form表单submit 可以设置点了提交后 弹出框判断是否 点了是 再执行submit ? 能实现吗?
告诉我方法呀,谢了。
以一个留言板为例
1,新建 feedback module
2,调用hook_menu 通过hook menu -> drupal_get_form(feedback_form)
3,写函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
function feedback_form($form, &$form_state){
表单
。。。。。
$form['#validate'][] = 'feedback_form_validate'; //验证函数
return $form;
}
function feedback_form_submit($form, &$form_state) {
提交
}
function feedback_form_validate($form, &$form_state) {
//这里使用正则表达式,来验证网址的有效性,注意,这里的正则表达式,包围在"/...../"之间。
if(!preg_match("/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/", $form_state['values']['email'])){
form_set_error('email',t('您输入的邮件地址格式不正确。'));
}
}
|
来自 http://www.drupalla.com/node/4
1,新建 feedback module
2,调用hook_menu 通过hook menu -> drupal_get_form(feedback_form)
ctools
模块版本: Drupal 7.xDrupal 6.x
用户数: 330 066
依赖:无
模块类型: 通用模块
CTools(Chaos Tools)是一系列的API和工具,可以很大程度上的方便开发。包括几个大组件:AJAX、上下文(Context)、CSS格式化与压缩、对象导出、表单工具、向导表单、临时缓存、以及插件系统等。
AJAX组件是CTools提供用来方便Drupal中Ajax操作的一系列工具,包括:
1.模式弹出窗口(Modal)
模式弹出窗口可以把页面内容以及表单通过弹出窗口显示,并且可以很方便的处理返回值。
生成链接点击弹出窗口,先包含需要文件并添加js和样式:
为需要在弹出窗口中显示内容的链接定制css,只要给链接指定类名’ctools-use-modal’即可,如果要指定样式,使用ctools-modal-ID,ID即上面定义的样式名。也可以用快捷命令:
如果用按钮来启动ajax模式窗口,先定义form中一个url隐藏域保存url,再定义按钮:
在hook_menu()中定义弹出窗口的路径和回调函数,最好在路径中包含%ctools_js,这样回调函数中可以直接读取页面是否支持js。访问链接时,%ctools_js写作nojs。
弹出窗口中如果不包含form表单,在回调函数中用ctools_modal_render来输出并结束:
如果包含form表单,需要先建立form_state数组,然后输出自定义的form或者现存form:
还可以使用ajax命令作为链接回调函数的输出,这点用法是和标准一致的:
2.下拉链接菜单(Drop Down Menu)
下拉链接菜单是一个CTools Ajax组件,通过下拉选项的方式来显示链接,使用方法很简单,先定义一组链接数组,然后调用theme_ctools_dropdown()输出可以了:
3.可折叠Div
可折叠Div有点像Drupal 6.x以前的fieldset,即可以控制下面的某段内容显示或者折叠,也只需要通过theme输出就可以了:
4.跳转菜单
跳转菜单扩充了select选择框的功能,只要选择某项即可跳转到对应链接,只需要用ctools_jump_menu()函数来生成表单:
5.级联选择(dependent)
级联选择是很常见的一种表单形式,也就是当某个可选表单元素,如选择框、复选框、单选框中的某项被选中后,会自动显示相关联的隐藏表单。CTools提供了简单的实现方式。
先包含dependecnt组件,然后再被关联的隐藏表单上设置依赖关系:
#dependency项设置了依赖关系,这里的意思是,如果名为menu-type的单选框被选中,且选择的值为‘normal’、’tab’或者’default’的时候,这个文本框就会显示出来供输入数据。
‘radio:menu[type]‘是对于单选框的特殊格式,如果是选择框或者复选框,只要填上id就可以了。
如果被关联的隐藏表单是单选框或者复选框,需要用#prefix和#suffix属性加上两层div。因为表单并不自带div容器。
来自 http://www.drupalla.com/project/ctools