簡體   English   中英

javascript:在 onchange 中傳遞數組 function

[英]javascript: pass array in onchange function

我正在嘗試在 onchange function 中傳遞一個數組,但遇到錯誤。

function 在頭部標簽中為:

<script>
        function displayReference(rA) {
            var rsb = document.getElementById("refSelectBox");
            var id = rsb.value;
            dr = document.getElementById("display-ref");
            dr.innerHTML = '</br>' + rA[id];
            return true;
        }
    </script>

其中 rA 應該是一個數組。 我嘗試了兩種通過 onchange 發送 rA 數組的不同方法:

1.

 <select class="selectResults" id="refSelectBox" onchange=displayReference(this.refArray)>

(產生“TypeError: undefined is not an object (evalating 'rA[id]')”)

2.

 <select class="selectResults" id="refSelectBox" onchange=displayReference(refArray)>

(產生“ReferenceError:找不到變量:refArray”)。

通過在生成 select 框代碼之前的 console.log(refArray),我知道 refArray 存在並已填充。

如果在提供答案方面有任何幫助,這一切都在 MS Word 加載項的環境中。

感謝您提前提供任何幫助。

我建議這樣做 - 它將測試是否存在 refArray 並將 select 傳遞給 function。

function displayReference(rsb) {
  if (refArray && refArray.length>0) {
    var id = rsb.value;
    var dr = document.getElementById("display-ref");
    dr.innerHTML = '</br>' + refArray[id];
  }
}

然后使用

<select class="selectResults" id="refSelectBox" onchange="displayReference(this)">

由於您沒有提供定義 refArray 的位置,我認為問題可能是它的順序:

  • 確保在您的 select 標簽之前定義 refArray

 <script> var refArray = ["Value One", "Value Two"] </script> <select class="selectResults" id="refSelectBox" onchange=displayReference(refArray)> <option>0</option> <option>1</option> </select> <p id="display-ref"></p> <script> function displayReference(rA) { var rsb = document.getElementById("refSelectBox"); var id = rsb.value; dr = document.getElementById("display-ref"); dr.innerHTML = rA[id]; return true; } </script>

如果這不可能,您可以通過使用字符串來獲取您在下面定義的數組(在您的 js 中)來簡化您的解決方案。 您可以將此字符串轉換為變量。 在此處閱讀更多相關信息。

 <select class="selectResults" id="refSelectBox" onchange="displayReference('refArray')"> <option>0</option> <option>1</option> </select> <p id="display-ref"></p> <script> var refArray = ["Value One", "Value Two"] function displayReference(rA) { var rsb = document.getElementById("refSelectBox"); var id = rsb.value; dr = document.getElementById("display-ref"); dr.innerHTML = window[rA][id]; return true; } </script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM