【问题标题】:enable save button when there is an update有更新时启用保存按钮
【发布时间】:2015-11-13 15:20:55
【问题描述】:

只有当我的表单页面中有更新时,我才必须启用“保存按钮”,否则它应该被禁用。在我使用的代码之后:

<a4j:commandButton styleClass="boutonAction buttonSave"
    value="#{messages['btn.save.label']}"
    update="editForm"
    action="#{Action.save()}"

    ajaxSingle="false" immediate="false" limitToList="true"
    reRender="msg" />

我认为在这种情况下我需要包含一个 JS ?

【问题讨论】:

  • 与问题无关:a4j:commandButton在RichFaces 3.x中没有update属性(我猜这个版本是基于reRender使用的)
  • 是的,也许你是对的,但我的问题是如何禁用 'a4j:commandButton' 按钮?
  • 你应该使用disabled属性和重新渲染机制
  • 是的,我做了一些我们建议使用“禁用”的搜索。你能给我一个使用例子吗(这是否正确:disabled="#{ editForm.isEditAccess() == true}")?
  • 它不会在您的旧环境中工作。它可以像 disabled="#{editForm.editAccess}" 一样,其中 isEditAccess 是您的 java bean 中的方法名称。或disabled="#{editForm.editAccess == 'false'}"

标签: jsf ajax4jsf jspx


【解决方案1】:

你可以使用disabled属性

<a4j:commandButton value="Update"
                   disabled="#{!bean.save}"/>
<a4j:commandButton value="Save"
                   disabled="#{bean.save}"/>

现在你将如何禁用/启用按钮,如果你有逻辑在你的 bean 方法中隐藏/显示,把它放在一个面板网格中,然后你可以更新 save 变量。

<h:panelGrid id="panelGrid">
 <a4j:commandButton value="Update" 
                       disabled="#{!bean.save}" render="panelGrid"/>
  <a4j:commandButton value="Save" action=""
                       disabled="#{bean.save}" render="panelGrid"/>
</h:panelGrid>

可能还有其他方法,但您必须清楚地详细解决您的问题。

【讨论】:

  • 感谢您的回答。有关更多详细信息:我需要的是,如果我的表单中没有更新,则保存按钮应变暗(无法单击),否则可以通过单击按钮来保存信息更新。
  • 它被称为脏检查这个问题不是 JSF 特有的。这里是 JSF 的丰富开发人员提供的详细解决方案 @Balusc stackoverflow.com/questions/8259090/…
【解决方案2】:

我用这个解决了这个问题:

disabled="#{editForm.editAccess == 'false'}"

我用 IE 试过了。显然firefox不会使按钮变暗。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多