Oracle APEX - 从 DA 条件访问 html 控件时出现问题
Oracle APEX - issue accessing html control from a DA condition
我有一个自定义 DA,它在 JavaScript 表达式为文档时调用,我希望它仅在满足特定客户端条件时执行。
所以我将客户端条件设置为javascript表达式:
document.getElementById("myfield").options[status.selectedIndex].text != "Closed"
问题是 myfield
不是页面项目,而是 html 控件 - select 框。所以我必须使用 javascript 表达式而不是 Item != Value
.
现在,当我 运行 页面并尝试执行激活我的 DA 的操作时,正在检查条件并且它会出错并显示 Cannot read property 'text' of undefined
。如何更改我的 javaScript 表达式以使其正常工作?
在 APEX 中,$x
是 shorthand reference/pointer 到 document.getElementById
,所以你应该可以这样做:
$x("myfield").options[$x("myfield").selectedIndex].text != "Closed"
使用JavaScript表达式时,如果您需要做的不仅仅是一个基本表达式,您可以使用一个立即调用的函数表达式来分解逻辑。这是一个例子:
(function(){
var select = $x('page-item-id');
if (select.selectedIndex === -1) {
return false;
}
return select.options[select.selectedIndex].text != 'Closed';
})()
或者,您可以在页面的函数和全局变量声明属性中声明一个函数,然后在 DA 的条件中将其作为表达式调用。
我有一个自定义 DA,它在 JavaScript 表达式为文档时调用,我希望它仅在满足特定客户端条件时执行。
所以我将客户端条件设置为javascript表达式:
document.getElementById("myfield").options[status.selectedIndex].text != "Closed"
问题是 myfield
不是页面项目,而是 html 控件 - select 框。所以我必须使用 javascript 表达式而不是 Item != Value
.
现在,当我 运行 页面并尝试执行激活我的 DA 的操作时,正在检查条件并且它会出错并显示 Cannot read property 'text' of undefined
。如何更改我的 javaScript 表达式以使其正常工作?
在 APEX 中,$x
是 shorthand reference/pointer 到 document.getElementById
,所以你应该可以这样做:
$x("myfield").options[$x("myfield").selectedIndex].text != "Closed"
使用JavaScript表达式时,如果您需要做的不仅仅是一个基本表达式,您可以使用一个立即调用的函数表达式来分解逻辑。这是一个例子:
(function(){
var select = $x('page-item-id');
if (select.selectedIndex === -1) {
return false;
}
return select.options[select.selectedIndex].text != 'Closed';
})()
或者,您可以在页面的函数和全局变量声明属性中声明一个函数,然后在 DA 的条件中将其作为表达式调用。