我正在尝试在匹配用户时区
时在html的选择列表中添加“selected”选项以下是我的尝试: - http://jsfiddle.net/HYfQ5/
我不是Javascript / jquery学生:'(
HTML列表: -
<select name="timezone" id="timezone" required>
<option value="Africa/Abidjan" > Africa/Abidjan</option>
<option value="Africa/Accra" > Africa/Accra</option>
<option value="Africa/Addis_Ababa" > Africa/Addis_Ababa</option>
....... <!--Rest Item is in Above Link, Don't want to fill this place with 480 items -->
</select>
和我的Jquery修改: -
<script type="text/javascript" src="http://cdn.bitbucket.org/pellepim/jstimezonedetect/downloads/jstz-1.0.4.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var tz = jstz.determine();
var timez = new Array();
var timez = $('#timezone').val();
response_text = 'No timezone found';
if (typeof (tz) === 'undefined') {
response_text = 'No timezone found';
}
else {
response_text = tz.name();
}
for(var i=0;i<array.length;i++) {
if (timez[i] === response_text) {
$('#timezone').attr('selected')
}
}
});
</script>
因此,每当它与用户时区匹配时,它应自动将“selected”值附加到选择列表。
Javascript时区,我正在使用: - http://pellepim.bitbucket.org/jstz/
谢谢!
答案 0 :(得分:0)
你的功能中有一个小错误。使用此代码:
$("#timezone option").each(function(){
if($(this).val() == response_text){
$(this).attr('selected','selected');
}
})
而不是:
for(var i=0;i<array.length;i++) {
if (timez[i] === response_text) {
$('#timezone').attr('selected')
}
}
此处的工作代码:http://jsfiddle.net/HYfQ5/1/
答案 1 :(得分:0)
您可以尝试:http://jsfiddle.net/HYfQ5/2/
在选择上调用val()将选择具有该值的选项(如果有)。
我对代码进行了以下更改:
var timez = $('#timezone');
并将for循环替换为:
timez.val(response_text);
答案 2 :(得分:0)
当您将.val()设置为选择列表时,它将选择具有该值的选项。
$(document).ready(function () {
var tz = jstz.determine();
response_text = 'No timezone found';
if (typeof (tz) === 'undefined') {
response_text = 'No timezone found';
}
else {
response_text = tz.name();
}
$('#timezone').val(response_text);
});