【问题标题】:Passing value of select list through Jquery in Oracle Apex 4.2在 Oracle Apex 4.2 中通过 Jquery 传递选择列表的值
【发布时间】:2014-07-05 00:08:54
【问题描述】:

当我们选择特定行时,以下经典报告会弹出一个名为 addExtraDetails 的新模式区域,其中包含从行中抓取的一些数据以及用户需要的一些新的附加信息:

当单击 (+) 时,会弹出新的模式区域,其中填充的值取自报告行。所以:在列链接我放:

javascript:function_to_add_to_basket('E',#ID#, 'Extra#ROWNUM#', #PRICE#,'DUMMY');

然后外部js函数负责传递信息。问题是它不会在每次填充 (+) 时都刷新,而是保留第一个输入的值。

我找到了更好的解决方案(和更清洁),点击 (+) 列链接 正在传递:

javascript:$s('P4_SET_QUANTITY','#QUANTITY#');
javascript:$s('P4_SET_TYPE','E');
javascript:$s('P4_SET_OBJECT_ID','#ID#'); 
javascript:$s('P4_SET_ELEMENT_ID','Extra#ROWNUM#'); 
javascript:$s('P4_SET_COST','#PRICE#'); 
javascript:$s('P4_SET_DISCOUNT','DUMMY');
javascript:openModal('addExtraDetails');

现在每次我们选择不同的行时它都会更新,但是因为我们有下拉 javascript 抓取 Quantity 列的所有可能值,所以对于这段代码:

javascript:$s('P4_SET_QUANTITY','#QUANTITY#'); 

输出是:'012345678910'。

如何将所有值传递给模态区域并使其在每次调用时都能使用新值?

【问题讨论】:

    标签: javascript jquery sql oracle oracle-apex


    【解决方案1】:

    您需要在单击模态按钮时检索选择列表的值。与其他值不同,该值不是静态的。呈现页面时,替换字符串将替换为其值。
    如果您只想在 javascript 函数中使用这些项目集,那么实际上并不需要执行所有这些项目集。您的第一个想法可能同样好,但我将使用openModal 运行。

    首先,确定如何定位选择列表。您没有指定您的报告是向导生成的表格形式还是手动表格形式(即使用 apex_item 来制作选择列表)。您可以通过引用数组的名称属性来定位选择列表,也可以通过列的标题进行选择。另见this article。 例如,选择列表的列名是QUANTITY,选择列表将是:

    td[headers=QUANTITY] select:visible
    

    或者,如果您确定数组,则可以更精确地定位元素。例如,如果NAME 属性设置为f02,那么您可以使用

    选择选择列表
    input[name=f02]
    

    然后修改openModal 函数以选择与pThis 在同一行的列表值 - 这将是触发元素,即锚点:

    function openModal(pThis, pMethod){
      //fetch the value of the select list on the same row
      //I use the second method of selecting here
      var lListValue = $(pThis).closest('tr').find('input[name=f02]').val();
      ...
    }
    

    您还需要调整对 openModal 的调用:

    javascript:openModal(this, 'addExtraDetails');
    

    【讨论】:

    • 感谢您添加答案。我简化了数据传递和删除模态区域的方式,但是我还设法测试了您的解决方案并且工作得非常好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多