![](/img/trans.png)
[英]how to pass array values to javascript function from html onchange action?
[英]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 的位置,我認為問題可能是它的順序:
<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.