在iPad上选择选项不使用jQuery更新

时间:2011-09-18 23:29:30

标签: jquery ipad html-select

我创建了一个网站,在加载比赛时更新选择选项。当用户选择比赛时,它会弹出一系列选择框。如果跑步者先前被分配到一个地方,那么他们将在比赛加载后加载。这在我尝试过的每个网络浏览器(Firefox,Chrome,Safari)中都能很好地工作,但不能在iPad上使用,而iPad则主要用于它。

这是我更新地方的部分的Javascript代码:

   $.post('getRunnerPlacements.php', {gender: race}, function(data) {
                var runners = data.split('*RUNNER*');
                var savedRunners = runners.length-1;
                for (var i=0;i<savedRunners;i++)
                {
                    var tempRunner = runners[i].split('*INFO*');
                    var place = tempRunner[2]-1;
                    var dd = $('#school'+place);
                    dd.val(tempRunner[3]);
                    loadRunners(place,race,tempRunner[0]);
                }
            });

...

function loadRunners(i,gender,place)
{
    var school = $('#school'+i+' option:selected').val();
    $.post('getRunners.php', {school:school,gender:gender}, function(data) {
        var runners = data.split('*RUNNER*');
        runners.pop();
        $.each(runners, function(key, value) {
            var temp = value.split('*INFO*');
            $('#runner'+i)
            .append($('<option>', { value : temp[0] })
            .text(temp[1]));
        });
        if (place != 'false')
            $('#runner'+(i)).val(place);
    });
}

我尝试过非jQuery方法,但我所做的一切都会导致iPad出现同样的问题。放置跑步者的学校将不会加载到第一个选择列表中,这会导致跑步者选择列表显示为空白。当我发出警告来测试值时,我偶尔会让它工作,但这并不是每次都有效。我还尝试使用setTimeout延迟执行loadRunners函数,但这也没有帮助。任何想法将不胜感激。您可以在以下网址查看实时网站:invite.ymsrunning.com/results.php。单击“输入结果”,然后选择要查看或设置结果的竞赛。

1 个答案:

答案 0 :(得分:0)

我不能说我遵循脚本试图做的所有事情,因为很难看到两个PHP ajax调用返回的内容。

但是,我确实看到了一些与iPad问题有关或可能没有关系的奇怪内容。您可以像这样设置变量place

var place = tempRunner[2]-1;

然后在loadRunners中,您将其用作:

if (place != 'false')

这两行不兼容。第一行似乎是将tempRunner[2]视为一个数字,但它看起来像是一个字符串。从字符串中减去一个数字不太可能有用。如果你的意思是它是一个数字,那么你可能想要这样做:

var place = parseInt(tempRunner[2], 10) - 1;

然后,如果place是一个数字,loadRunners中的比较为“false”并没有多大意义,因为你应该与一个数字进行比较。