附加“选定的”;选项在选择列表通过jquery[时区选择列表]

Appending the "selected" option in select list via jquery [timezone selection list]

本文关键字:列表 选择 jquery 时区 选项 选定的 附加      更新时间:2023-09-26

我试图在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"值到select list。

Javascript时区,我使用:- http://pellepim.bitbucket.org/jstz/

谢谢!

你可以试试:http://jsfiddle.net/HYfQ5/2/

select上调用val()将选择具有该值的选项(如果有)。

我对代码做了以下修改:

var timez = $('#timezone');

并将for循环替换为:

timez.val(response_text);  

你的函数有一个小bug。使用以下代码:

$("#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/

当你将。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);
});