簡體   English   中英

Javascript將變量傳遞給輸入元素中的內聯函數

[英]Javascript passing variable to inline function in input element

我試圖將一個對象totalArray傳遞到一個輸入元素id = fullReport中,以便可以在函數printFullReport中使用變量totalArray。

輸入元素串聯在一個字符串中,以便最終可以將其創建到表中。

我無法將totalArrays傳遞給onclick =“ printFullReport('+ totalArray +')”>,可能是由於字符串串聯所致,在我的控制台中,我收到:“未捕獲到的SyntaxError:意外的標識符”,這意味着丟失; 或',但對我來說似乎不錯。

所以這是我最初的嘗試:

<script type="text/javascript">
console.log(totalArray); //{"1":0,"2":0,"3":54700.33,"4":54700.33,"5":0,"6":0,"7":-54700.33,"8":0,"9":0,"10":0};
var str = "";
str += '<td>
<input id ="fullReport"  
class="button" 
type="button" 
value="Full Report" 
    onclick="printFullReport('+ totalArray+ ')">
    TOTAL (GBP):</td>';
</script>

這是我閱讀並遵循最佳答案之后的第二次嘗試: 內聯onclick JavaScript變量

<script type="text/javascript">
var str = "";
console.log(totalArray) //{"1":0,"2":0,"3":54700.33,"4":54700.33,"5":0,"6":0,"7":-54700.33,"8":0,"9":0,"10":0};

function init(){
    document.getElementById('fullReport').onclick=function(){
        printFullReport(totalArray);
    };
}
window.onload=init;

str += '<td><input id ="fullReport"  class="button" type="button" value="Full Report" onclick="init();">TOTAL (GBP):</td>';
</script>

但是現在返回:Uncaught ReferenceError:未定義init。

在javascript字符串中包含html元素時,我可能不理解范圍。

第二次嘗試,您丟失了右引號 "

<script type="text/javascript">

並且您需要從可訪問totalArray位置分配onclick (現在,您已經在注釋中闡明了totalArray不在全局范圍內 。)

演示

 <script type="text/javascript"> var str = ""; totalArray ={ "1":0,"2":0,"3":54700.33,"4":54700.33,"5":0,"6":0,"7":-54700.33,"8":0,"9":0,"10":0}; //console.log(totalArray) //{"1":0,"2":0,"3":54700.33,"4":54700.33,"5":0,"6":0,"7":-54700.33,"8":0,"9":0,"10":0}; function init(){ document.getElementById('fullReport').onclick=function(){ printFullReport(totalArray); }; } window.onload=init; str += '<td><input id ="fullReport" class="button" type="button" value="Full Report" onclick="init();">TOTAL (GBP):</td>'; </script> <input id ="fullReport" class="button" type="button" value="Full Report" onclick="init();">TOTAL (GBP): 

暫無
暫無

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

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