Questions tagged «forms»

将其用于有关Form API的问题。请勿将其用于实体或实体字段表单。

3
多个值触发#状态
如何让多个值触发Form API的#state? 举例来说,我希望此字段不仅在值是5时可见(当前工作在下面),而且还希望在值是3、4或5时使该字段可见。 '#states' => array( 'visible' => array( ':input[name="field_star_rating"]' => array('value' => t('5')), ), ), 注意,我尝试了以下操作,但它不起作用。仅在值为“ 4”时有效 '#states' => array( 'visible' => array( ':input[name="field_star_rating"]' => array('value' => t('5')), ':input[name="field_star_rating"]' => array('value' => t('4')), ), ), 这也不起作用,它也仅在值是'4'时起作用: '#states' => array( 'visible' => array( ':input[name="field_star_rating"]' => array('value' => t('5'), 'value' => …
18 7  forms  javascript 

2
如何更改表单提交处理程序?
由于某种原因,我需要在每个单个文本字段中以某种形式替换某些字符(如果存在),就在它们存储在数据库中之前。换句话说,我需要一个钩子,可以在其中获取所有提交的数据并替换其字符。 我找到了这个解决方案: function hook_form_alter($form, $form_state, $form_id) { $form['#submit'] = 'my_custom_submission_function'; } 但这不是一个好主意,因为我也必须照顾其余的提交进度。我只需要替换一些字符。有挂钩吗?有什么解决方案?
16 7  hooks  forms 

2
在AJAX回调中更改$ form_state
我正在创建一个使用表单API '#ajax'属性的表单,我需要对$form_state按下启用AJAX的按钮的时间进行更改。这是我得到的: 在我的表单构建器函数中: ... $form['some_fieldset']['add_more'] = array( '#type' => 'button', '#value' => t('Add more rows'), '#ajax' => array( 'wrapper' => 'some-fieldset', 'callback' => 'my_module_settings_ajax', 'method' => 'replace', 'effect' => 'fade', ), ); ... 这是回调函数: function my_module_settings_ajax($form, $form_state) { // Make a change to $form_state if ($form_state['some_fieldset']['add_more']) { $form_state['values']['some_fieldset']['table'][] = array('first_field' …
16 7  forms  ajax 

12
设置选择列表默认值
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 我有带有选项的选择列表: $options = array(0 => '0', 500 => '500', 1000 => '1000'); 我正在尝试将其默认值设置为500: $form['price']['min']['#options'] = $options; $form['price']['min']['#default_value'] = 500; 但这不起作用。
16 forms 

4
如何在hook_form_alter()中实现自定义提交处理程序?
我已经将我的Drupal 7模块之一更新为8,而我的表单alter遇到了问题。我添加了验证功能和提交处理程序。验证函数可以正常调用,但是提交函数不会被触发。我想知道这是否意味着需要采用Symfony样式的方法将提交处理程序添加到现有表单中。我做了很多搜索,找不到任何示例。还浏览了一些正在进行的D8模块,但我也没有真正找到任何可行的示例。 有谁知道正确的Drupal 8方式是什么?
15 forms  8 

3
表单提交后重定向
我在Drupal 8中创建了自定义表单,我记得我们可以使用$form_state['redirect'] = 'mycustompath';在自定义提交处理程序中设置的重定向到Drupal 7 中的自定义路径,但是在Drupal 8中提交表单后如何重定向用户? 我知道我应该使用submitForm方法: public function submitForm(array &$form, FormStateInterface $form_state) { //submissions jobs ... //redirect path }
15 forms  8  redirection 

2
如何将参数传递给表单生成器?
我在module_name.routing.yml中有以下路由。 module_name.usergroup_delete: path: 'module_name/usergroup/delete/{arg1}' defaults: _form: '\Drupal\module_name\Form\DeleteUserGroup' _title: 'Delete User group' requirements: _permission: 'access admin menus' 这是module_name / src / Form / DeleteUserGroup.php中的代码。 namespace Drupal\module_name\Form; use Drupal\Core\Form\ConfigFormBase; use Drupal\Core\Form\FormStateInterface; class DeleteUserGroup extends ConfigFormBase { public function getFormId() { return 'delete_user_group'; } /** * General form for switching all nodes from …
15 forms  8 

4
添加或编辑节点后,重定向到自定义页面
使用hook_form_alter,在创建或编辑节点而不是创建或编辑的节点之后,如何将用户重定向到自定义页面? 的当前代码hook_form_alter()如下: function custom_form_alter(&$form, &$form_state, $form_id) { if ($form['#id'] == 'custom-node-form') { $form['actions']['submit']['#value'] = t('Add Entry'); $form['field_custom_email']['und'][0]['value']['#element_validate'] = array('_custom_form_validate_email'); } }
15 7  forms  redirection 

2
块内表格
我drupal_get_form('event_signup_form')用来将我的自定义窗体嵌入一个块中。表单已按预期方式呈现,但是提交表单不会触发任何操作。 表单函数本身被调用event_signup_form($form, &$form_state),而提交函数被调用,event_signup_form_submit($form, &$form_state)但是没有被调用。 我正在使用hook_block_view来显示表单: function event_block_view($delta = '') { $blocks = array(); if ($delta ...) { $blocks['content'] = drupal_render(drupal_get_form('event_signup_form')); } } 我设法使它正常工作-这是(存根)如何: function hook_block_view($delta = '') { $blocks['content'] = drupal_render(drupal_get_form('event_signup_form')); } function event_signup_form() { // Register form submit handler, same goes for validation handler $form['#submit'][] = 'event_signup_form_submit'; return $form; …
14 7  blocks  forms 

3
如何实施AJAX表单提交?
我的任务是通过AJAX提交联系表单,然后显示“谢谢您的提交!” 消息,将其加载到表单所在的位置。因此,我需要取消现有的联系表。 我找到了一些示例,这些示例如何在D8中使用AJAX 验证表单字段,但是找不到任何示例来实现Ajax表单提交并随后通过AJAX加载某些内容。 如何执行任务?我应该如何更改联系方式以添加所需的功能?
14 ajax  8  forms 

3
如何在商务结帐表格中添加其他提交处理程序?
如何添加其他提交处理程序?我已经尝试过了,但是没有用。 function c_coupon_form_alter(&$form, $form_state, $form_id) { drupal_set_message($form_id); switch($form_id) { case 'commerce_checkout_form_review': drupal_set_message($form_id . '_form submit'); $form['#submit'][] = 'c_coupon_review_submit'; } } function c_coupon_review_submit($form, &$form_state) { drupal_set_message('submitted'); }
14 commerce  forms 

1
如何在Drupal管理员设置表单上使用Submit回调?
我正在使用以下代码制作我的管理表单: function custom_orders_admin(){ $form = array(); $form['custom_ignore_terms']['ignore_terms'] = array( '#type' => 'checkboxes', '#title' => t('Don\'t display these'), '#default_value' => variable_get('custom_ignore_terms', array()), '#options' => drupal_map_assoc($termTypes), '#description' => t("Choose the terms you do not want displayed."), '#required' => FALSE, ); return system_settings_form($form); } 但是我注意到,如果我这样做: function custom_orders_admin_submit($form, &$form_state) { exit(var_dump($form_state)); } 我不能退出 我猜这是因为要system_settings_form()注意提交。如何获得控制权?我需要在_submit处理程序中进行一些自定义处理...
14 7  forms 

3
单击后如何禁用提交按钮?
Drupal似乎并没有阻止多次表单提交,即使在节点页面上也是如此。此质量检查建议将其修复在服务器端。 单击后如何禁用提交按钮? 还有其他解决方案吗?
13 7  forms 

3
如何将客户端表单验证添加到Drupal表单?
如何将客户端表单验证添加到Drupal表单?例如,在评论模块中。如果访问者未输入电子邮件地址,则我想弹出一个窗口:“请输入电子邮件地址”。 我希望有人能给我一个例子。
13 7  forms 

2
如何在Drupal 8中默认使自定义字段集折叠
在Drupal 7中,可以选择是否使字段集可折叠,并限制此表单元素的默认状态(折叠或未折叠)。例: $form['contact_data'] = array( '#title' => t("Contact data"), '#type' => 'fieldset', '#collapsible' => TRUE, '#collapsed' => FALSE, ); 现在,在Drupal 8中我找不到属性#collapsible,#collapsed在中Drupal\Core\Render\Element\Fieldset。在Fieldset元素的官方文档中未提及任何新元素,这些新元素应替代Fieldset元素。 此外,还没有Drupal 8的Form API元素概述(例如Drupal 7)。您必须在代码中手动搜索所有Render Elements定义,这比较耗时(尤其是当您希望查看元素概述并进行比较时) 。
13 forms  8 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.