0

我有一个名为 rcc 的下拉列表和一些复选框组。这是它的 HTML 代码。

<select id="rcc" name="rcc">
    <option value="Select Your Name">Select Your Name</option>
    <option value="p1">Person 1/option>
    <option value="p2">Person 2</option>
    <option value="p3">Person 3</option>                    
</select>

<input type="checkbox" name="time1[]" value="8:00am"/>8:00am
<input type="checkbox" name="time1[]" value="8:20am"/>8:20am
<input type="checkbox" name="time2[]" value="8:40am"/>8:40am
<input type="checkbox" name="time2[]" value="9:00am"/>9:00am
<input type="checkbox" name="time3[]" value="9:20am"/>9:20am
<input type="checkbox" name="time4[]" value="9:40am"/>9:40am

我还生成了一个文本文件,其中包含当有人在下拉列表中选择其他人时我想要选择的时间。例如,如果我选择 Person 1,我想打开 p1times.txt,它看起来像:

time1
8:00am
time2
8:40am
9:00am
time4
9:40am

然后运行一个脚本,该脚本会自动填充页面上的相应复选框。我正在考虑遍历文本文件,但我不确定逻辑将如何工作。任何帮助都会很棒:)。

4

1 回答 1

1

我在http://jsfiddle.net/RHUdR/1发布了一个示例。我建议将您的时间存储为 JSON。如果您想将它们放在不同的文件中,只需将该文件包含在您的 html 中,就像任何其他脚本文件一样。

数据:

var people = {
    p1: { time1: [ '8:00am', '8:20am'], time4: ['9:40am'] },
    p2: { time2: [ '8:40am'], time3: ['9:20am'] },
    p3: { time1: [ '8:00am'], time2: ['9:00am'], time4: ['9:40am' ]}    
};

和一个小 jquery 来设置值:

$('#rcc').change(function() {
    var person = $(this).val();
    var times = people[person] || [];

    $('input[type="checkbox"]').attr('checked', false);
    for (var name in times) {
        var bucket = times[name];
        for(var i = 0, len = bucket.length; i < len; i++ ) {
            $('input[name="' + name + '"][value="' + bucket[i] + '"]')
                .attr('checked', true);
        }
    }        
});
于 2012-04-29T20:09:48.290 回答