Questions tagged «forms»

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

4
延迟对文本字段的ajax调用以允许键入
我想以自动完成功能似乎起作用的方式延迟ajax的触发。例如,如果键入用户,则自上次键入键起经过500毫秒后,ajax才会运行。 我目前正在查看drupal.behaviors,但无法使其工作。 Drupal.behaviors.mymodule = { attach: function(context, settings) { $('input.andtimer', context).delay(500).ajaxStart(); } }; 这是行为所附加的表单元素。 $form['my_input'] = array( '#type' => 'textfield', '#default_value' => $value, '#ajax' => array( 'callback' => 'my_callback', 'event' => 'keyup', 'wrapper' => 'my_wrapper', 'trigger_as' => array( 'name' => 'my_button', ), 'progress' => array('type' => 'none'), ), '#attributes' => …

2
如何使用反向代理缓存表单并处理过时的表单令牌?
当Form API生成表单时,它还会生成一个令牌,该令牌与该表单一起在隐藏字段中传递出去,并有望返回。如果是,将处理该表单。 如果渲染的表单曾经被Varnish缓存过,则该机制就会中断。提交表单的第一个用户将使用令牌,并且随后尝试使用该表单的请求将被拒绝。 有哪些策略可用于在缓存其呈现的表单时保持其正常工作?
8 caching  forms 

2
krumo()/ dpm()不起作用
我有一个自定义模块和一个模板,可以更改节点提交表单的外观,请参见以下说明。 我的模块包含三个功能: 一个hook_form_alter()效果很好 hook_theme()即使您之前输入了其他代码,A 也不执行任何操作,但是返回一个数组return(不确定这是否是设计使然) 一个hook_preprocess_HOOK()是目前空 dpm()hook_preprocess_HOOK()尽管krumo()在相同的变量上可以工作,但在中似乎什么也没做。它设置了一个Drupal消息,该消息可以读取,Array: [n] items但根本无法扩展或检查。 在我的模板中,print_r($form);按预期方式打印出表单数组。dpm('self-aware roomba');按预期设置Drupal消息“自我感知的Roomba”。但是dpm($form); 什么也不做,不会抛出任何错误。 除我以外的所有内容都hook_form_alter()与链接教程中显示的完全一样。我什至尝试将整个部分拉出来hook_form_alter(),看看是否没有它就可以工作。没有。 什么可能导致dpm()/ krumo()静默失败?

1
如何在Drupal 7中以表单更改形式使用Ajax?
我创建了一个名为“主菜单”的内容类型。我只有几个相互依赖的选择列表。当要选择不同的复选框时,我想显示一个不同的列表。我发现需要使用Ajax来编辑表单才能实现这一点,但是谁能告诉我如何将Ajax与hook_form_alter一起使用? 我应该编辑的表单的表单ID是“ main_menu_node_form”。当我尝试使用hook_form_alter()并添加#ajax表单字段的属性来访问此表单时,似乎无法执行此操作,因为在将句柄传递给之前已经渲染了这些字段hook_form_alter()。谁能帮我解决这个问题? 注意:我已经使用创建了内容类型hook_install()。 function main_menu_content_type_form_main_menu_node_form_alter(&$form, &$form_state, $form_id) { dpm($form); dpm($form_state); $form['field_mlnk'] = array( '#ajax' => array( 'callback' => 'main_menu_content_type_form_main_menu_node_form_alter_callback', 'wrapper' => 'link-div', 'method' => 'replace', 'effect' => 'fade', ), ); }
8 forms  ajax 

3
在自定义模块中上传图片
我正在编写一个自定义模块,并且需要它来上传图像。我很难找到关于此的好的文档,但是我想我已经接近了。 我想念什么?$ file在表单提交中返回false。 function mymodule_custom_content_block_form($form_state){ $form = array(); $form['custom_content_block_text'] = array( '#type' => 'textarea', '#title' => t('Block text'), '#default_value' => variable_get('mymodule_custom_content_block_text'), '#required' => true, ); $form['custom_content_block_image'] = array( '#type' => 'file', '#name' => 'custom_content_block_image', '#title' => t('Block image'), '#size' => 40, '#description' => t("Image should be less than 400 pixels …
8 7  forms  files 

3
如何正确使用form_set_error()?
在我的Drupal 7模块中,我有一个表单及其验证处理程序。我用field print render(drupal_get_form('my_form')); tpl.php调用表单;它按预期工作。 问题是输入值错误。 在显示错误消息之前,它需要两次不正确的提交:第一次,我的错误输入周围有红色边框,第二次,显示了错误消息(带有红色边框)。 那么,什么是正确的使用方式form_set_error()?
8 7  forms 

3
渲染theme_item_list项目
我的模块提供了一个简单的块,其中需要包含一些图像的无序列表。从一个块函数,我返回一个可渲染的数组: $block['content'] = array( 'list' => array( '#theme' => 'item_list', '#type' => 'ul', '#attributes' => array('class' => 'foo1'), '#items' => array( /* ... what should go here? */ ), ), ); 我想要一些可渲染的数组作为项目列表中的项目,但是我似乎无法将任何数组插入到#items数组中。 在Drupal 7的theme_item_list API文档说: items:要在列表中显示的项目数组。如果项目是字符串,则按原样使用它。如果一项是数组,则该数组的“数据”元素用作列表项的内容。如果项目是带有“子项”元素的数组,则这些子项将显示在嵌套列表中。所有其他元素都被视为列表项元素的属性。 我尝试同时使用“ data”和“ children”元素,但是我得到的是empty <li>或里面有一个单词Array。 正确的方法是什么?theme_item_list是正确/最新的解决方案吗?
8 7  forms  theming 

4
如何在drupal 7中向用户/注册页面表单添加文本字段?
我想在Drupal 7用户/注册页面中修改并添加文本字段。我知道表格是由函数生成的user_register_form() 我可以用这种方式添加文本框吗? function bartik_copy_user_login($form, &$form_state) { global $user; // If we are already logged on, go to the user page instead. if ($user->uid) { drupal_goto('user/' . $user->uid); } // Display login form: $form['name'] = array('#type' => 'textfield', '#title' => t('Username'), '#size' => 60, '#maxlength' => USERNAME_MAX_LENGTH, '#required' => TRUE, …
8 forms 

2
一页上有多个表格?
是否可以在一个页面上放置多个表单? 我正在尝试制作优惠券报价页面。我希望在页面的每一侧都有两种形式的两种不同报价。每个表格都有一个用于优惠券代码的文本字段和自己的提交按钮。第一种形式行得通;但是,第二种形式的隐藏值似乎被第一种形式的隐藏值覆盖。 我正在使用hook_alter来更改第二个表单以使其与众不同,但它仍具有与第一个相同的form_id。这是引起我问题的原因,还是我需要在其他地方查看/思考? 这两个表单的“ form_id”和“ form_token”值相同,但“ form_build_id”的值不同。
8 6  forms 


2
复选框:如何使用Form API设置默认值或显示用户定义的值?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Drupal Answers 的主题。 6年前关闭。 我正在为Drupal 7开发的模块中的表单中使用一个复选框元素。这是我第一次尝试模块开发和使用Form API。我正在创建一个复选框列表,该列表列出了特定站点的所有内容类型。可以使用以下方法获取所有内容类型的数组:$nodeTypesRaw=node_type_get_names();。获得一个以内容类型的机器名称作为键并以人类可读的名称作为值的数组。 默认情况下,我希望选中所有复选框以及提交表单的时间。我该如何实现?drupal网站上的Form API页面对于设置复选框的默认值不是很有帮助。 $nodeTypesRaw=node_type_get_names(); $nodeMachineNames=array_keys($nodeTypesRaw); $form['process_comments']['custommod_published_comments_select_node_types']['custommod_published_comments_node_types_checkboxes']=array( '#deafult_value'=>$nodeMachineNames, '#options'=>$nodeTypesRaw, '#type'=>'checkboxes', ); 我最初从上面的代码开始,但是它不起作用。它的确显示复选框列表,但默认情况下未选中它们。该变量确实可以提交表单(通过drush和var_dump检查)。
7 forms 

4
在特定单选按钮周围添加/更改div包装器?
默认情况下,单选按钮的HTML标记看起来像(Drupal 7): <div class="form-item form-type-radio form-item-SOME_ID"> <input id="edit-SOME_ID" class="form-radio" type="radio" value="SOME_VALUE" name="SOME_NAME" /> <label class="option" for="edit-bla-bla">MY LABEL</label> </div> 我需要在外部更改/添加一些CSS类,<div>或者添加包装器<div>。我怎么做?
7 7  theming  forms 

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.