iOS上的jQuery onchange问​​题

时间:2019-07-22 22:28:22

标签: javascript jquery ios safari mobile-safari

我的jQuery onchange事件在我的iPhone上的Safari中无法正常工作。

onchange所在的位置:

//Detects change in location and updates with location name and address
$('#location').on('change', function () {
    var serviceId = $("#location").val();
    $.ajax({
        type: "get",
        url: 'utilities/fetchdata?fetch=locationbyid&location=' + serviceId + '',
        success: function (data) {
            var locationData = JSON.parse(data);
            document.getElementById("location-name").innerHTML = locationData.name;
            document.getElementById("location-address1").innerHTML = locationData.address;

            //Fetch servies offered by that location
            $.ajax({
                type: "get",
                url: 'utilities/fetchdata?fetch=services&location=' + serviceId + '',
                success: function (data) {
                    console.log(data);
                    var newOptions = JSON.parse(data);

                    var $el = $("#service");
                    $el.empty(); // remove old options
                    $.each(newOptions, function(key,value) {
                        $el.append($("<option></option>")
                            .attr("value", value).text(key));
                    });
                }
            });
        }
    });
});

这是它正在监听的内容:

                <select name="location" class="form-control" id="location">
                <option disabled selected>-- Velg Lokasjon --</option>
                <?php
                //Fetch locations
                if (! $locations = $locationData->fetchHTMLINPUT()) {
                    echo $locations;
                } else {
                    echo "<option disabled>Systemfeil oppsto</option>";
                }
                ?>
            </select>

我需要做的是始终如一地触发事件,因为这是吸引用户遵循的下一步的地方。

预期行为:

  • 获取下一个输入字段以供选择

我认为这很奇怪,因为它可以在我的台式机以及Edge上的Chrome中使用。

有人可以指出我要在移动设备上使用的解决方法吗?

1 个答案:

答案 0 :(得分:0)

好吧

我有点想通了。似乎移动iOS浏览器无法在呈现HTML之后刷新选择的内容,但是使用f.ex $('#service').html(data);更改HTML就像一种魅力,尽管必须在服务器端生成HTML。< / p>