inputText 的 required 属性应该取决于另一个组件提交的值
我有一个包含一个下拉列表和两个输入字段的表单。
<h:selectOneMenu />
<h:inputText />
<h:inputText />
我想根据下拉列表的选定值使输入字段的必需属性成为有条件的。如果用户选择下拉列表的第一项,则必须需要输入字段。如果用户选择第二项,则不需要这些。
我怎样才能实现这个目标?
I have a form which contains a dropdown and two input fields.
<h:selectOneMenu />
<h:inputText />
<h:inputText />
I would like to make the required attribute of the input fields conditional depending on the selected value of the dropdown. If the user chooses the first item of the dropdown, then the input fields must be required. If the user chooses the second item, then those would not be required.
How can I achieve this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
只需将下拉列表绑定到视图并直接在
required
属性中检查其值即可。请注意,
绑定
示例是原样的。绝对不要在这里将其设置为 bean 属性。另请参阅 JSF 中的“绑定”属性如何工作?何时以及如何使用它?另请注意,组件的顺序很重要。如果菜单位于树中输入的下方,请改用
#{menu.subscribedValue eq 'first'}
。或者,如果您想独立于此,请改用#{param[menu.clientId] eq 'first'}
。Just bind the dropdown to the view and directly check its value in the
required
attribute.Note that the
binding
example is as-is. Do absolutely not set it to a bean property here. See also How does the 'binding' attribute work in JSF? When and how should it be used?Also note that the ordering of the components is significant. If the menu is located below the inputs in the tree, use
#{menu.submittedValue eq 'first'}
instead. Or if you want to be independent from that, use#{param[menu.clientId] eq 'first'}
instead.假设您使用的是 JSF 2.0:让您的 SelectOneListBox 使用 ajax 执行,并在列表框更改时重新呈现输入字段:
快速草图:
Assuming you are using JSF 2.0: Let your SelectOneListBox execute with ajax and re-render the input fields on change of the list box:
A quick sketch: