2017-02-14 62 views
0

使用的Oracle APEX 4.2的Oracle APEX表格的形式選擇列表中的禁用

我有一個表格的形式,您可以創建一個新的行和可更新現有數據。我在嘗試禁用或使項目只能在表格窗體上的選擇列表中讀取時遇到問題。

例如,選擇列表包含在其中; 橙色,綠色,藍色,紅色

我希望能夠根據另一列的值禁用或只讀取選擇列表中的藍色和橙色項目。

任何幫助,將不勝感激。

回答

0

這是先端5快速測試,但我認爲你可以使用類似的方法在4.2
1.創建動態動作在頁面加載
- 一套動作來執行JavaScript代碼 - 選擇類型到jQuery選擇
enter image description here
- 檢查元素找到他的身份證(在我的情況「f01_0001」)
enter image description here
2.更改「如果」條件,以符合您的標準。例如:

var op = document.getElementById("f01_0001").getElementsByTagName("option"); 
for (var i = 0; i < op.length; i++) { 
    // lowercase comparison for case-insensitivity 
    if (op[i].value.toLowerCase() == "red") { 
     op[i].disabled = true; 
    } 
} 
0

我猜你想要禁用的樣式應用到選擇項目的2個選項基於來自其他項目的值。

假設,

  • 表格形式的第一列是文本字段和具有需要被引用
  • 表格形式的第五列是一個與藍色和橙色選項
  • 選擇項目值
  • 表中有多行
  • 具有通用名稱「f01」但基於行位置不同ID的輸入項的集合。例如,「f01_000X」其中x是行索引。
  • 具有通用名稱「f05」但根據行位置不同ID的選擇項目的集合。例如,「f05_000X」其中x是行索引。
  • 當第一列中的文本字段值爲「abc」時,選擇選項藍色和橙色。風格化,使選項不可選。
  • 風格化的頁面負載(未在參考文本字段值的變化或區域刷新)

解決方案,

循環通過在頁面加載的所有文字項,確定當前項的行索引,得到的手柄選擇項目的藍色和橙色選項,並在標識的行的幫助下引用文本字段,然後相應地設置樣式。

守則如何去用這個,

JavaScript函數和全局變量聲明

function updateRowStyle(rowIndex) { 
    var inp_reference = $("#f01_" + rowIndex); 
    var opt_blue = $("#f05_" + rowIndex + " option:contains('blue')"); 
    var opt_orange = $("#f05_" + rowIndex + " option:contains('orange')");; 
    if (inp_reference.val() === "ABC") { 
     opt_blue.prop("disabled", true); 
     opt_orange.prop("disabled", true); 
    } else { 
     opt_blue.prop("disabled", false); 
     opt_orange.prop("disabled", false); 
    } 
} 

執行時,頁面加載

$("[name=f01]").each(function() { 
    updateRowStyle(this.id.split("_").pop()); 
}); 
相關問題