簡體   English   中英

將字符串文字從html傳遞到javascript函數

[英]Pass a string literal from html to a javascript function

在IE9中,我收到一個錯誤Microsoft JScript運行時錯誤: <input type="button"....行上未定義'populatedropdown'。

我假設我沒有正確地轉義文字值。 我應該如何改變?

<html>
<head>
<title>Add items to dropdown</title>

<script type="text/javascript">
function populatedropdown(var devicelist) {
    var devList = document.frm.optdevices;
    var arrDev = split(devicelist, ";");

     devList.options.length = 0; // this removes existing options

     for (var i = 0; i <= 3; i++) {
         var option = new Option(arrDev[i],i);
         devList.options[i] = option; 
     }
}

</script>

</head>
<body>
<form name="frm">

<select name="optdevices">
</select>

<input type="button" value="TestAdd" onclick="populatedropdown('201;202;203;')" />

</form>
</body>
</html>

將JavaScript與HTML分開,並刪除語法錯誤。 看到這個小提琴

function populatedropdown(devicelist) {
    var devList = document.frm.optdevices;
    var arrDev = devicelist.split(';'); // split not defined

     devList.options.length = 0; // this removes existing options

     for (var i = 0; i <= 3; i++) {
         var option = new Option(arrDev[i],i);
         devList.options[i] = option; 
     }
}

// on window load
window.addEventListener('load', function load(){
    // attach event listener to button
    document.getElementById('testID').addEventListener('click', function click(){
        populatedropdown('201;202;203;');
    }, false);
}, false);
​

的HTML

<form name="frm">

<select name="optdevices">
</select>

<input id="testID" type="button" value="TestAdd" />

</form>​

您的函數無效,因為在function參數中包含var。 只要您的腳本中有語法錯誤,該函數就不會被識別。 function populatedropdown(var devicelist)無效。 參數中不應包含var

function populatedropdown(devicelist) {
    var devList = document.frm.optdevices;
    var arrDev = split(devicelist, ";");

     devList.options.length = 0; // this removes existing options

     for (var i = 0; i <= 3; i++) {
         var option = new Option(arrDev[i],i);
         devList.options[i] = option; 
     }
}

首先,您不應該通過定義函數來編寫var,其次,函數split的使用是錯誤的,如果您想通過;拆分,則應該像var result = strToSplit.split(";") split ; ,您可以在此處閱讀有關split的內容Javascript Split方法

這是工作片段

function populatedropdown(devicelist) {
    var devList = document.frm.optdevices;
    var arrDev = devicelist.split(";");

     devList.options.length = 0; // this removes existing options

     for (var i = 0; i <= 3; i++) {
         var option = new Option(arrDev[i],i);
         devList.options[i] = option; 
     }
}

剛剛在IE9上測試

暫無
暫無

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

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