如何从<;h:选择一个功能表>;在javascript中
我试图在更改后从SelectOne菜单中获取所选项目,但它不起作用。每次我更改下拉列表并选择另一个选项时,web浏览器上的控制台都会显示 属性“getOffset”的值为null或未定义,不是函数对象 这是我的.xhtml页面,名为ProgramDetails.xhtml如何从<;h:选择一个功能表>;在javascript中,javascript,jsf,selectonemenu,Javascript,Jsf,Selectonemenu,我试图在更改后从SelectOne菜单中获取所选项目,但它不起作用。每次我更改下拉列表并选择另一个选项时,web浏览器上的控制台都会显示 属性“getOffset”的值为null或未定义,不是函数对象 这是我的.xhtml页面,名为ProgramDetails.xhtml 函数getOffset(下拉列表){ var minutesmp=dropdown.options[dropdown.selectedIndex].value; var minutes=minuteTemp.toString
函数getOffset(下拉列表){
var minutesmp=dropdown.options[dropdown.selectedIndex].value;
var minutes=minuteTemp.toString();
警报(“分钟:+分钟);
//
}
这些是我的hourList和minuteList方法,它们正在填充selectOneMenu
private void loadMinuteList(){
minuteList=新的ArrayList();
对于(整数i=0;i您的脚本中有两个问题:
var minutesTemp = dropdown.options[dropdown.selectedIndex].value.;
删除末尾的附加
及
应该是
else if (document.getElementById('ProgramDetails:DispatchConfigurationCustom:0:offsetSummaryBeforeBox') != null) {
document.getElementById('ProgramDetails:DispatchConfigurationCustom:0:offsetSummaryBeforeBox').value = minutes + " minutes before Start time";
}
ie在else
之后添加if
-使用else
时无法检查条件,除非您也包含if
请尝试以下操作:
<h:selectOneMenu styleClass="portlet-dropdown" rendered="#{workflowConfig.workflowStep.displayLabel == 'Restore Notification' or workflowConfig.workflowStep.displayLabel == 'Overlapping Follow Up' or workflowConfig.workflowStep.displayLabel == 'Restore'}" id="offsetAfterBoxMin" value="#{workflowConfig.offsetMinutes}" onchange="getOffset(offsetAfterBoxMin[index].value);">
<f:selectItems value="${CRUDOperatorProgram.minuteList}" />
</h:selectOneMenu>
谢谢。我删除了“.”但仍然会出现相同的错误。我确实有一个else if和许多其他检查,但我将它们取出以使代码更小。还有其他想法吗?有没有办法区分“ProgramDetails:DispatchConfigurationCustom:0:offsetSummaryBeforeBox”和“ProgramDetails:DispatchConfigurationCustom:1:offsetSummaryBeforeBox”呢@Zack如果您有其他代码,请将其包含在您的问题中-问题是JavaScript根本无效-仅包含部分代码对实际代码没有帮助,很难定义问题可能是什么。如果您分析生成的HTML代码(或发布代码以查看可能发生的情况),效果会更好@LuiggiMendoza我已经查看了生成的HTML代码,因此我使用java beans和jsf,在加载HTML时设置为更改的id。在本例中,offsetSummaryAfterBox的id更改为ProgramDetails:DispatchConfigurationCustom:0:offsetSummaryAfterBox。这可能不是导致此错误的主要问题。但我确实这样做了需要找到一种方法来区分我正在编辑的offsetSummaryAfterBox。示例:(ProgramDetails:DispatchConfigurationCustom:0:offsetSummaryAfterBox)vs.(ProgramDetails:DispatchConfigurationCustom:1:offsetSummaryAfterBox)@LuiggiMendoza如果您想要更多信息,我很乐意带您参加聊天或其他资源。非常感谢
<h:selectOneMenu styleClass="portlet-dropdown" rendered="#{workflowConfig.workflowStep.displayLabel == 'Restore Notification' or workflowConfig.workflowStep.displayLabel == 'Overlapping Follow Up' or workflowConfig.workflowStep.displayLabel == 'Restore'}" id="offsetAfterBoxMin" value="#{workflowConfig.offsetMinutes}" onchange="getOffset(offsetAfterBoxMin[index].value);">
<f:selectItems value="${CRUDOperatorProgram.minuteList}" />
</h:selectOneMenu>
<h:selectOneMenu styleClass="portlet-dropdown" rendered="#{workflowConfig.workflowStep.displayLabel == 'Restore Notification' or workflowConfig.workflowStep.displayLabel == 'Overlapping Follow Up' or workflowConfig.workflowStep.displayLabel == 'Restore'}" id="offsetAfterBoxMin" value="#{workflowConfig.offsetMinutes}">
<f:selectItems value="${CRUDOperatorProgram.minuteList}" />
<f:ajax event="valueChange" execute="getOgetOffset(offsetAfterBoxMin[index].value);"/>
</h:selectOneMenu>