- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 JSF2/PrimeFaces 页面上有两个单选按钮,我需要根据选择启用/禁用 inputText 字段。
<h:form prependId="false">
<p:panelGrid id="notif">
<p:row id="notif1">
<p:column>
<h:outputText value="label" />
</p:column>
<p:column>
<p:selectOneRadio id="radiobuttons" value="#{state.radioStatus}" layout="pageDirection">
<f:selectItem itemLabel="enable" itemValue="enable" />
<f:selectItem itemLabel="disable" itemValue="disable" />
<p:ajax update="date" />
</p:selectOneRadio>
</p:column>
<p:column>
<p:inputText id="date" value="#{state.infoDate}" disabled="#{!state.checkStatus}" >
</p:inputText>
<p:inputText id="test" value="#{state.infoDateTest}">
</p:inputText>
</p:column>
</p:row>
</p:panelGrid>
</h:form>
此外,这一切都在一个选项卡内,但检查生成的 html 时没有嵌套表单。这些字段似乎获得了选项卡的 ID,但它们似乎是这样正确的(尝试对 ajax 使用 ID 符号“tabView:date”时无效。)
问题是,当进入页面时,“实际”文本字段默认情况下是禁用的,当单选按钮设置为启用它时应该启用它。当单选按钮状态更新时,我可以看到事件已在服务器端注册,并且 inputText 字段“可视化”启用(默认情况下它被禁用)。但是,该字段在启用后不是“可聚焦的”,因此无法写入。
当我添加“测试”输入文本字段时,它变得更加奇怪,它不会自动启用/禁用关于单选按钮的功能。在新页面加载时,您可以写入它,但在更改单选按钮状态后,它不再可写(在 ajax 调用之前输入的文本将保留,但不可编辑)。
但是单选按钮会继续工作,并且会在服务器端触发事件。
有人可以指出我可能做错了什么,或者这可能是 PrimeFaces 的错误?
//更新就像说的那样,托管 bean 按预期工作,所以我没有看到任何问题,但这里是代码(为了便于阅读而简化和重命名,因为相关部分取自更大的上下文)。
@ManagedBean(name = "state")
@SessionScoped
public class ExampleBean implements Serializable {
private static final String disable = "disable";
private static final String enable = "enable";
private String text;
private List<TestRow> rows = null;
private TestRow row = null;
private String radioStatus = "enable";
private String infoDate = "";
private String infoDateTest = "";
@PostConstruct
public void initEmpty() {
}
public String getRadioStatus() {
return this.radioStatus;
}
public void setRadioStatus(String radioStatus) {
this.radioStatus = radioStatus;
}
public String getInfoDate() {
return infoDate;
}
public void setInfoDate(String infoDate) {
this.infoDate = infoDate;
}
public String getInfoDateTest() {
return infoDateTest;
}
public void setInfoDateTest(String infoDateTest) {
this.infoDateTest = infoDateTest;
}
public boolean isCheckStatus() {
return this.radioStatus.equalsIgnoreCase(enable) ? true : false;
}
}
最佳答案
不幸的是,我无法找出导致实际问题的原因。基本的事情似乎是继承的javascript(primefaces)在此页面上无法正常工作(可能是因为继承了其他一些js)。最后,我将其设为自定义启用/禁用 js 函数:
js.toggleDisableStatus = function(elementId) {
// Can't use jQuery $("#xx:yy"), the syntax is not accepted by jquery but
// used by JSF/PrimeFaces
var element = document.getElementById(elementId);
var attrValue = element.getAttribute('disabled');
if (attrValue === undefined || attrValue == null) {
element.disabled = true;
element.style.background = "#dddddd";
} else {
element.removeAttribute('disabled');
element.style.background = "";
}
};
这可能有缺陷,但目前有效。单选按钮由持久状态(加载状态)选择,输入字段的启用/禁用状态也在初始加载页面时设置。一般来说,我认为这应该适用于这种特殊情况。
关于jsf-2 - PrimeFaces inputText 启用/禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19360822/
我有三个单选按钮,一个 inputText 和一个提交按钮。我只想在选择某个 radio 时验证提交时的输入文本。所以我有 在我的 bean 里,我有 public void validateNu
我想在页面加载时将焦点设置在JSF中的inputText字段上。我该如何实现? 最佳答案 如果您已经在使用HTML5和JSF 2.2,请使用HTML5 autofocus属性。在JSF 2.2中,可以
当特定 inputText 出现验证错误时,我想将焦点设置在 JSF 中的 inputText 字段上。我该如何实现? 我认为 inputText 上的 validatorMessage 会开箱即用,
我在 blazor 中有一个 InputText,我想阻止非数字字符,那么基本的 razor 和 c# 代码是什么?这是我需要它的工作方式,用户输入一个字符,它一起拒绝输入,并显示一条验证消息,说明只
我只需要允许字母字符 [A-Z,a-z]在 PrimeFaces inputText 字段中。 我怎样才能做到这一点? 最佳答案 不是针对 Primefaces,而是针对底层 JSF: 您可以在输入字
我需要实现以下内容: 以 ajax 方式上传多个文件(无需刷新整个页面) 每个文件的描述字段 必须使用 JSF 2.0 完成 以任意组合执行 3 个要求中的 2 个没有问题。使用 JSF 2.0 的多
我想在 JSF/Primefaces inputText 组件中显示默认的信息文本。 当用户单击文本字段时,此文本应该消失。 当他点击外部而不输入任何内容时出现。 如果用户提交的表单没有任何值,则不应
这个问题在这里已经有了答案: What is a NullReferenceException, and how do I fix it? (27 个回答) 2年前关闭。 当我使用 Blazor 中
JSF-2.0、Mojarra 2.1.19、PrimeFaces 3.4.1 问题摘要:有 p:inputText里面p:dataTable和由 p:remoteCommand 触发的 inputT
使用example from the Microsoft docs ,我正在尝试以编程方式将焦点设置到输入元素。 不幸的是,该示例使用标准 而我想用它来 InputText element . Mic
以下是我的 abc.xhtml 页面中的代码片段: 这是我的 panelGrid 我正在动态生成 inputTe
我正在尝试制作一个日期掩码和一个小时掩码,但我遇到了问题。这样,面膜就可以很好地发挥作用。但停止工作 Controller 上设置的默认输入。 public class someController
我正在使用 netbeans 开发一个 jsf Web 应用程序。
我正在使用 JSF,我想在 InputText 元素的 keyup 事件上调用监听器,但前提是输入文本长于 3 个字符。 我的代码是: 现在我正在我的听众中检查文本的长度,效果很好,但速度很
有没有一种方法可以将 inputText 的返回值与多个属性关联起来? 像这样(这是一个示例,语法中不存在 value1 和 value2 标签属性): 提前致谢! 最佳答案 也许只需将 inpu
我有一个富数据表的列,如下所示:
在 Jquery 中,我成功向托管 bean 发送值 document.getElementById('formId:inputId').value = "blavla"; document.getE
这个问题已经有答案了: Clear JSF form input values after submitting (5 个回答) 已关闭 8 年前。 我是 java 服务器面孔的新手。当我单击提交按钮
我正在尝试制作一个只接受浮点值的输入文本。此外,输入的值必须介于两个值之间。 我创建了一个包含“验证”方法的类。如果该值不在两个值之间,则会显示一个弹出窗口。 但是我有一个问题。该方法仅在用户点击“E
在使用 Moharra JSF 2 的 JBoss AS 7.1.1 上,使用 inputText 元素创建的 XHTML 文件不会呈现属性 required="true"。 没有错误,但输出的 HT
我是一名优秀的程序员,十分优秀!