如何使用文本区域、文本框和文件上传字段创建 h:selectOneRadio 选项?
我正在尝试在 JSF 2.0 中制作以下表单,但遇到一些麻烦:
-
我怎样才能制作
s 里面有文本框和文本区域? -
未选择单选按钮时如何取消文本区域或文本框?
更新:事实上,我对那个表格还一无所知。我只有基本的数据表,我正在尝试:
<h:column>
<h:selectOneRadio id="radio" layout="pageDirection" onclick="uncheckOthers(this)" >
<f:selectItem id="radio_1" itemLabel="Accesion Number: ">
<h:inputTextarea id="radio" />
<!-- Or another one objet distinct to <f:selectItem> -->
</f:selectItem>
</h:selectOneRadio>
</h:column>
我在这个网络中找到了 uncheckOthers()
函数以及我认为它具有相同功能的另一个函数:
function seleccionarSequencesType(x){
document.getElementById("gi").disabled=true;
for (var i = 0; i < document.solicitud.sequencesType.length; i++) {
if (document.solicitud.sequencesType[i].checked) {
inhabilitar(document.getElementById(document.solicitud.sequencesType[i].value), false);
//document.getElementById(x.value).disabled=false;
} else {
inhabilitar(document.getElementById(document.solicitud.sequencesType[i].value), true);
//document.getElementById(document.solicitud.sequencesType[i].value).disabled=true;
}
}
}
function uncheckOthers(radio) {
var name = radio.name.substring(radio.name.lastIndexOf(':'));
var elements = radio.form.elements;
for (var i = 0; i < elements.length; i++) {
if (elements[i].name.substring(elements[i].name.lastIndexOf(':')) == name) {
elements[i].checked = false;
}
}
radio.checked = true;
}
我有一个带有 < code>String 属性来保存textareas的信息,但是还没有完全开发出来,因为一开始我想实现上面的需求。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
标准 JSF
< h:selectOneRadio>
组件不支持此功能。最好的选择是使用 Tomahawk
与layout
属性设置为spread
。这使您能够将各个单选按钮定位为
任何你想要的地方。要根据单选按钮选项值禁用文本字段,只需在未选择所需的单选按钮选项值时让其
disabled
属性评估true
即可。这是一个基本的启动示例:
请注意,Tomahawk 还提供了
在标准 colspan 支持href="http://docs.oracle.com/javaee/6/javaserverfaces/2.1/docs/vdldocs/facelets/h/panelGroup.html" rel="nofollow noreferrer">< /code>
以及
浏览并选择文件。后者要求将表单的编码类型设置为multipart/form-data
。这反过来又需要在web.xml
中注册ExtensionsFilter
,如本迷你教程所示:JSF 2.0 文件上传。The standard JSF
<h:selectOneRadio>
component doesn't support this. Your best bet using Tomahawk's<t:selectOneRadio>
with thelayout
attribute set tospread
. This enables you to position the individual radio buttons as<t:radio>
everywhere you want.To disable the text fields depending on the radio button option value, just let its
disabled
attribute evaluatetrue
when the desired radio button option value is not selected.Here's a basic kickoff example:
Please note that Tomahawk also offers a
<t:panelGroup>
which adds thecolspan
support on top of the standard<h:panelGroup>
and also a<t:inputFileUpload>
to browse and select files. The latter requires the form's encoding type to be set tomultipart/form-data
. This in turn requires theExtensionsFilter
to be registered inweb.xml
as shown in this mini-tutorial: JSF 2.0 File upload.单选按钮就是单选按钮,句号。文本框应该是单独的元素(最好的解决方案是创建包含单选按钮和文本框/文件上传字段的自定义组件)
使用 javascript。与 JSF 结合起来会变得很难看,但如果将其保存在外部文件中,应该没问题。
A radio button is a radio button, period. The textboxes should be separate elements (the nicest solution is to create custom components that include the radio button and the textboxes/file upload fields)
Use javascript. It gets ugly combined with JSF, but if you keep it in external files you should be fine.