欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

drupal表单元素: Button(按钮)#type为button 它仍然会提交 有大用

如果是 #type为button,它依然会提交,这个我就不懂了

$form['button'] = array('#type' => 'button', '#value' => t('查询'));

我的方法是用 #markup (或者  #items也行吧  搜索本网站 " d7 form api 有大大用 ")

$form['button'] = array(
   '#markup' => '<button type="button" class="preview_permission_group">预览权限组</button>',
);



按钮元素除了属性#executes_submit_callback默认为FALSE以外,其它属性与提交按钮元素完全相同。属性#executes_submit_callback告诉Drupal是否需要处理表单,为TRUE时处理表单,为FALSE时则简单的重新呈现表单。和提交按钮元素一样,可以将特定的验证和提交函数直接分配给这个按钮元素。


来自 http://www.thinkindrupal.com/node/1156


【问题描述】:

我想在 drupal 创建表单中添加一个自定义按钮,因此如果用户单击它而不是提交按钮,则创建对象的工作流状态将更改为另一个状态(不是默认的第一个状态) 有什么建议吗?

【问题讨论】:

    标签: drupal forms button



    【解决方案1】:

    要修改由drupal 生成的默认表单,您必须在模块中添加一个form_alter 挂钩。你可以通过定义一个类似modulename_form_alter的函数来实现它,假设你的模块名称是modulename。 drupal 系统传递了form 数组和form_state 数组,您可以使用它们来覆盖默认行为。在你的情况下,完整的函数看起来像这样。

    function modulename_form_alter(&$form, $form_state, $form_id) {
        if($form_id == 'what you want') {
            $form['buttons']['another_button'] = array(
                '#type'   => 'submit',
                '#value'  => 'Add to another state',
                '#submit' => array('modulename_custom_form_submit')
            );
        }
    }
    
    function modulename_custom_form_submit($form, &$form_state) {
        if($form_state['values']['another_button'] == 'Add to another state') {
            //Do your thing
        }
    }
    

    进行必要的修改后,您可以简单地提交到创建表单的默认提交操作。


    来自  https://www.likecs.com/ask-6327457.html


    普通分类: