![](/img/trans.png)
[英]How to pass string literal into a filter function in 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.