【问题标题】:How to remove the submit button from a specific Drupal webform如何从特定的 Drupal 网络表单中删除提交按钮
【发布时间】:2011-03-08 11:11:51
【问题描述】:
我想从特定的 Drupal 网络表单中删除提交按钮,这可能吗?如果可以,我该怎么做?
如果可能的话,我还想从同一个表单中删除上一个按钮。
【问题讨论】:
标签:
drupal
drupal-webform
【解决方案1】:
您需要使用 hook_form_alter() 来定位和更改该表单,如 @googletop 所示
要取消提交,可以在自定义模块中执行类似的操作:
<?php
function my_custom_module_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'webform_client_form_130') {
if ($thiscondition && $thatcondition){
unset($form['actions']['submit']);
}
}
}
?>
“上一个”按钮也是如此,您只需要在表单数组中找到它
【解决方案2】:
- 复制文件
webform-form.tpl.php
- 将其重命名为
webform-form-{nid}.tpl.php 其中 nid 等于您的节点 ID
- 编辑 - 在
print drupal_render($form['submitted']); 之后仅添加一行,
添加这一行:unset($form['actions']['submit']);
它对我有用。
【解决方案4】:
如果您想快速修复原型等,那么您可以在 CSS 中隐藏按钮。
.block-webform .form-actions {
visibility:hidden;
}
隐形按钮仍会占用空间,但您将看不到它。
【解决方案5】:
我在webform-form.tpl.php 中使用了这些简单的php 行,因为创建webform-form-{nid}.tpl.php 或webform-form-[nid].tpl.php(在模板文件中指定)不起作用。
所以我只是在$nid webform 上使用了 if 条件,只是为了取消设置特定 webform 节点上的提交按钮。
print drupal_render($form['submitted']);
$arrayWithoutSubmitButton = array( 29, 30, 31, 32);
if( in_array( $nid, $arrayWithoutSubmitButton)){
unset($form['actions']['submit']);
}
【解决方案6】:
感谢这个,对我来说,Etno 的解决方案奏效了:其他的解决方案由于某种原因没有奏效。
我唯一要补充的是,提到的文件在“/sites/all/modules/webform/templates/webform-form.tpl.php”中,而不是“/drupal/sites/all”中的文件/modules/webform/templates/webform-form.tpl.php”(如果你有这样的文件)——我花了一段时间才弄清楚:)