我在使用Form API构建的自定义Drupal 6模块中有一个表单,它在列表中有一个或多个image_button元素,后跟Save和Cancel按钮。
单击图像和标准按钮时,一切正常,他们调用应该提交的提交功能,但是如果我在表单中的任何文本字段中按[ENTER]键,表单中的第一个按钮就会被提交,不幸的是,在这种情况下,列表中的image_button而不是“保存”按钮。
这是Web表单的标准问题,您通常必须在表单定义的早期入侵隐藏(按样式和/或大小)按钮以确保调用默认提交路径(在这种情况下,这就是Save按钮将调用)而不是您希望成为默认按钮之前的按钮的提交路径。
是否有一些Drupal 6魔法可以设置默认按钮,无论它在我在文档中找不到的表单定义中的位置,或者我应该创建一个样式提交按钮,该按钮的样式不可见?
提前感谢您的任何答案。
答案 0 :(得分:0)
尝试将'#weight'
放到按钮上。
答案 1 :(得分:0)
答案是否定的,没有内置的Drupal方法可以在按下[ENTER]时解决表单中第一个按钮的问题。
这是我必须做的。
我在表单顶部创建了一个额外的提交按钮:
// A submit button that needs to be hidden, it'll be the default rather than one from the list.
$form['hidden-submit'] = array(
'#type' => 'submit',
'#value' => 'Save',
'#attributes' => array('class' => 'hidden-default-submit'),
);
在页面中包含的CSS中,我添加了以下腰带和大括号CSS,以便在我可以测试的多个Web浏览器中隐藏额外的提交按钮:
.hidden-default-submit {
position: absolute;
left: -2000;
top: -2000;
width: 0;
height: 0;
border: 0;
margin: 0;
padding: 0;
}
答案 2 :(得分:-1)
您可以通过为每个提交按钮分配不同的名称来轻松完成此操作