html - 在 PL/SQL 动态内容中将变量传递给 htp.p
问题描述
我正在尝试根据 db 列和 UI 组件上的复选框传递变量中的值以进行验证。注意:Max_Set 是保存 DB 列中的最大数量的变量,该数量将针对 numberOfChecked 项进行验证。但是,当我将 Max_Set 传递给 htp.p 脚本时,我无法使用变量中的值。
select num into Max_Set from table where column_name = name;
htp.p('<script type="text/javascript">');
htp.p('function ValidateSelection1()
{
var checkboxes = document.getElementsByName("student");
var numberOfCheckedItems = 0;
var Max_num = Max_Set
for(var i = 0; i < checkboxes.length; i++)
{
if(checkboxes[i].checked)
numberOfCheckedItems++;
}
if(numberOfCheckedItems > Max_num)
{
alert("You cant select more than the required number for this SL Site!");
return false;
}
}');
htp.p('</script>');
如何将 Max_Set 中的值用于 htp.p 脚本而不将其视为字符串?
解决方案
在您的 pl/sql 代码中,htp 调用中的所有内容都被视为字符串。如果要使用在 pl/sql 中声明的变量,可以连接 (||) 将它们放在一起。我将“Max_Set”替换为“l_max_set”以表明这是一个本地 pl/sql 变量而不是 javascript 变量,并且 initcap 倾向于使其看起来像 javascript。
select num into l_max_set from table where column_name = name;
htp.p('<script type="text/javascript">');
htp.p('function ValidateSelection1()
{
var checkboxes = document.getElementsByName("student");
var numberOfCheckedItems = 0;
var Max_num = '||l_max_set||';
for(var i = 0; i < checkboxes.length; i++)
{
if(checkboxes[i].checked)
numberOfCheckedItems++;
}
if(numberOfCheckedItems > Max_num)
{
alert("You cant select more than the required number for this SL Site!");
return false;
}
}');
htp.p('</script>');
推荐阅读
- python - 当值间隔不均匀时,在 matplotlib 中绘制分类数据
- angular - Angular:Redux 与服务(带有 observables)
- c# - Xamarin Forms 4.0 的简单注入器支持
- javascript - 导入的 JS 脚本在 ASP.NET 视图中不起作用
- android - Android WebRTC 发送 TURN 消息失败,err=22
- android - 如何防止 EditText 中的数据更新?
- django - Django CMS 多行字段
- javascript - 如何使用其他 div 的类名访问 div
- javascript - 从本地目录获取 csv 文件以制作图表而不使用服务器
- css - 很难找到页面的活动父类,应该显示为两个主菜单的子菜单