JSF 生命周期(验证)

发布于 2024-11-03 21:59:35 字数 585 浏览 3 评论 0原文

我有一个 JSF 页面,其中的元素具有 required=truedisabled 属性,我想触发对该特定元素的验证。我所做的是使用 提交它,在 onclick 事件上,我删除了 disabled 属性,但是在页面呈现后,验证错误没有显示。有人知道为什么吗?

<h:inputText id="myInput" required="true" disabled="disabled" />
<h:commandButton id="saveButton" action="#{myBean.saveDetail}">

<script type="text/javascript">
  document.getElementById('saveButton').onclick = function() {
     document.getElementById('myInput').removeAttribute('disabled');
  }
</script>

I have a JSF page with an element which has attribute of required=true and disabled, I want to trigger the validation on that specific element. What I did is submitting it using <h:commandButton>, on the onclick event, I remove the disabled attribute, but after the page renders the validation error doesnt show up. Anyone knows why?

<h:inputText id="myInput" required="true" disabled="disabled" />
<h:commandButton id="saveButton" action="#{myBean.saveDetail}">

<script type="text/javascript">
  document.getElementById('saveButton').onclick = function() {
     document.getElementById('myInput').removeAttribute('disabled');
  }
</script>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

活雷疯 2024-11-10 21:59:35

这里有几个问题:

1. inputText 上的disabled 属性应该是布尔值。

2.Disabled属性的意思是:

标志表明该元素必须
从未获得关注或被纳入
随后提交。

所以没有验证器会在上面运行。

3.您不能在客户端更改h:inputText的disabled属性,如果可以的话,这将是JSF的安全问题。

There are a couple of problems here:

1.The disabled attribute should be boolean on the inputText.

2.Disabled attribute means:

Flag indicating that this element must
never receive focus or be included in
a subsequent submit.

So no validators will run on it.

3.You can't change the h:inputText's disabled attribute on the client side, it would be a security problem in JSF if you could.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文