2012-04-29 83 views
0

我有一個名爲rcc和一些複選框組的下拉列表。這是它的HTML代碼。使用JavaScript,從下拉列表填充複選框從文本文件更改

<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 

我也有,我已經生成包含我希望當有人選擇下拉列表上的其他人要選擇的時間的文本文件。例如,如果讓我選擇的人1,我想開p1times.txt它看起來像:

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

然後運行一個腳本,自動填充頁面上相應的複選框。我正在考慮循環訪問文本文件,但我不確定邏輯是如何工作的。任何幫助將是偉大的:)。

+1

你有沒有考慮在格式存儲數據,如JSON?這將使解析數據變得更容易。 –

+0

我對JSON沒有任何經驗,但我認爲它可能有效。你知道我如何將我的.txt文件翻譯成JSON,或者它可能是什麼樣子? – Vikram

+0

就像比爾發佈的:) –

回答

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); 
     } 
    }   
}); 
+0

感謝比爾,這是一個偉大的開始,但不是我正在尋找的。例如,p1(Person 1)可以有多個時間段,例如,我希望當我點擊Person 1時,一個名爲times1的複選框組應該選擇上午8點,然後另一個名爲times2的複選框組應選擇上午8:40和上午9:20。也許這個代碼可以被修改來支持這個功能? – Vikram

+0

這段代碼實際上與提供的html一起工作,所以有你指定的複選框組,當表單提交時,你會看到times1 ['8:00 am']和time2 ['8:40 am','9:20 am']。由於所有時間都不相同,所以沒有理由在文本文件或代碼中將它們編碼。他們的情況是什麼時候可以在兩組之間重疊? – Bill

+0

是的,不同的時間[x]會有相同的時間。對不起,我之前沒有具體說明。 – Vikram

相關問題