Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从<;h:选择一个功能表>;在javascript中_Javascript_Jsf_Selectonemenu - Fatal编程技术网

如何从<;h:选择一个功能表>;在javascript中

如何从<;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

我试图在更改后从SelectOne菜单中获取所选项目,但它不起作用。每次我更改下拉列表并选择另一个选项时,web浏览器上的控制台都会显示

属性“getOffset”的值为null或未定义,不是函数对象

这是我的.xhtml页面,名为ProgramDetails.xhtml


函数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>