1

当它与用户时区匹配时,我正在尝试在 html 的选择列表中添加“选定”选项,

这是我的尝试:- 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>

因此,每当它与用户时区匹配时,它应该自动将“选定”值附加到选择列表中。

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

谢谢!

4

3 回答 3

0

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

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

我对代码进行了以下更改:

var timez = $('#timezone');

并将for循环替换为:

timez.val(response_text);  
于 2013-06-12T17:10:06.080 回答
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/

于 2013-06-12T17:02:18.657 回答
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);

});
于 2013-06-12T17:30:28.177 回答