【问题标题】:JSF : Disable drop down does not set value to backing beanJSF:禁用下拉不会将值设置为支持 bean
【发布时间】:2011-07-11 12:53:54
【问题描述】:

我有一个要求,我需要通过 JavaScript 禁用某个事件的下拉菜单,然后提交表单。问题是当下拉组件被禁用时,下拉列表中的值不是通过支持 bean 设置的。

我尝试通过 div 和 span 禁用下拉组件,但没有成功。

谁能建议我如何将禁用组件的值提交给支持 bean? 或者我真的需要 idsable 那个组件,我的意思是如何使用 div 或 span 来实现这个?

【问题讨论】:

    标签: jsf-2


    【解决方案1】:

    HTML forms specification 的Chapter 17.12.1 表示以下内容(强调我的)

    17.12.1 Disabled controls

    ...

    设置后,disabled 属性对元素有以下影响:

    ...

    注意最后一点。换句话说,它们永远不会提交给服务器。因此,您看到的行为是完全正确的,并且符合 HTML 表单规范的预期。

    为了达到您的要求,您需要在提交后禁用它。

    【讨论】:

    • 非常感谢您的回复。提交后我无法禁用该组件。让我更详细地解释一下。 1.我有两个下拉菜单,第一个中的特定值的选择第二个被禁用。 2. 用户填写完其他字段后,点击完成按钮,如果出现任何错误,同一页面将显示错误消息。 3.问题是在重新渲染页面时,第二个下拉菜单的值不像以前那样出现。我想到了两个解决方案。 1.在组件上放一个层(div或span)。
    • 并在事件 2 上禁用该层。将第二个下拉列表中选择的值设置为支持 bean 属性。但我不确定是否可以通过javascript设置backing bean中的值。
    • 提交后绝对可以禁用该元素。只需将属性设置为disabled="#{bean.submitted}" 或其他内容,然后在操作方法中将submitted 设置为true。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-20
    • 2011-04-11
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    相关资源
    最近更新 更多