Javascript 从另一个字段重置字段值

Javascript 从另一个字段重置字段值,javascript,java,ajax,jsf,primefaces,Javascript,Java,Ajax,Jsf,Primefaces,视图: <p:selectOneMenu id="examId" value="#{examrequisitionsController.selected.examId}" required="true" requiredMessage="#{bundle.CreateExamrequisitionsRequiredMessage_examId}"> <f:selectItem itemLabel="Select One" itemValue="#{null}" no

视图:

<p:selectOneMenu id="examId" value="#{examrequisitionsController.selected.examId}" required="true" requiredMessage="#{bundle.CreateExamrequisitionsRequiredMessage_examId}">
     <f:selectItem itemLabel="Select One" itemValue="#{null}" noSelectionOption="true" />
     <f:selectItems value="#{examsController.itemsAvailableSelectOne}" var="examIdItem" itemValue="#{examIdItem}"/>
     <p:ajax listener="#{examrequisitionsController.getExamPrice()}" update="price" />
</p:selectOneMenu>

<p:inputText id="price" widgetVar="widgetPrice" value="#{examrequisitionsController.selected.price}" title="#{bundle.CreateExamrequisitionsTitle_price}" required="true" requiredMessage="#{bundle.CreateExamrequisitionsRequiredMessage_price}" readonly="#{facesContext.currentPhaseId.ordinal eq 6}" maxlength="7">
     <f:validator validatorId="decimalValidator" />
</p:inputText>
JavaScript:

$(document).on('change', '#ExamrequisitionsCreateForm\\:examId_input', function () {   
    if (this.value === '')
        jQuery('#ExamrequisitionsCreateForm\\:price').val('');    
});
如果在examId字段中选择了“选择一个”选项,我想做一些事情来重置输入“价格”的值

JS函数可以工作,但是在JS函数重置字段的值之后,标记ajax自动更新为最后一个有效值

在Controller中实现它会更容易,但是当我选择第一个选项时,ajax不会被应用到Controller中,这就是我尝试使用JS的原因

或者在用户使用JS选择任何其他选项后禁用“选择一个”的任何函数

我试过这样的方法:


$('select[value=”“]).attr('style','display:none')

我假设examId是一个int。那么您可以删除它吗

 <f:selectItem itemLabel="Select One" itemValue="#{null}" noSelectionOption="true" />

 <f:selectItem itemLabel="Select One" itemValue="0" noSelectionOption="true" />


我认为空值转换器不工作,因为您的selectOneMenu值是int,无法理解空值。您可以删除js脚本。

您好,谢谢您的回答。不,examId不是int,而是一个考试对象(这个术语是因为数据库)。无论如何,我用
解决了这个问题,所以没有办法再次选择这个选项。太好了。下一次,您可以探索jsf转换器进行测试。如果解决方案有效,接受答案和/或向上投票会有所帮助
 <f:selectItem itemLabel="Select One" itemValue="0" noSelectionOption="true" />