1

我有一个 JSFIDDLE 并试图让它在我的网络表单上工作,但它不工作。谁能告诉我我犯了什么错误。JSFIDDLE 工作得很好,但我不能让它只在我的页面上工作。这是小提琴的链接:LINK

这就是我尝试使用它的方式:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script>
var devices = ['computer', 'router']
var device_types = {
    'computer': ['laptop', 'desktop'],
    'router': ['wireless', 'bluetooth']
}

var brands = {
    'laptop': ['HP', 'DELL'],
    'desktop': ['Apple', 'MAC'],
    'wireless':['Foo','Bar'],
    'bluetooth':['Grren','Blue']
}


function createOptions(arr) {
    var html = ['<option >--select--</option>'];
    $.each(arr, function(i, item) {
        html.push('<option value="' + item + '">' + item + '</option>')
    });
    return html.join('');
}

var mainOptions = createOptions(devices)

$(function() {
    $("input[type=button][value=Add]").click(function(e) {
        for (i = 0; i < document.getElementById('sel').value; i++) {
            e.preventDefault();
            var j = 1;

            var newDiv = $('<div class="row">').appendTo("#dropbox");
            $("<select class='devices has_dependents'>").attr("name", "input1_" + j).append(mainOptions).appendTo(newDiv)

            $("<select class='device_types has_dependents'>").attr("name", "input2_" + j).appendTo(newDiv)
            $("<select class='brands'>").attr("name", "input3_" + j).appendTo(newDiv)
            $("<input>").attr("name", "input4_" + j).appendTo(newDiv);
            $("<button>").text("Remove").appendTo(newDiv).click(function(e) {
                e.preventDefault();
                $(this).parent().remove();
            })
            j++;
        }
    });

    $(document).on('change', 'select.has_dependents', function() {
        var val = $(this).val(),
            option_obj;
        if ($(this).is('.devices')) {
            option_obj = device_types;
        } else {
            option_obj = brands;
        }


        var options = createOptions( option_obj[val]);


        $(this).next().html(options)
    })
})
</script>
</head>

<body>
<form>
    <select id="sel">
        <option value="" selected="selected"></option>
        <option value="01" >01</option>
        <option value="02" >02</option>
        <option value="03" >03</option>
        <option value="04" >04</option>
        <option value="05" >05</option>
        <option value="06" >06</option>
        <option value="07" >07</option>
        <option value="08" >08</option>
        <option value="09" >09</option>
        <option value="10" >10</option>
        <option value="11" >11</option>
        <option value="12" >12</option>
        <option value="13" >13</option>
        <option value="14" >14</option>
        <option value="15" >15</option>
    </select>
    <input type="button" value="Add" />

    <div id="dropbox"></div>
</form>​
</body>
</html>
4

2 回答 2

0

第 67 行 ')' 后面有一个非可视字符

})<right here is a none visual character>
</script>

编辑:这是固定代码的链接:

http://pastebin.com/8n8fkgMy

于 2012-10-13T20:51:17.140 回答
0

您从 jsfiddle 剪切和粘贴中得到了一个非法字符,由于某种原因,它在其中放置了零宽度空格字符。它在 vim 中显示为<200b>第 67 行的结束括号。

于 2012-10-13T20:53:17.050 回答