jquery event.preventDefault()与IE 8有关

时间:2013-06-12 20:47:45

标签: jquery-ui internet-explorer jquery preventdefault

在我的jquery自动填充select函数中,我需要使用event.preventDefault()方法来阻止默认ui.item.value填充自动填充所连接的输入文本框。这在Chrome中非常有用,但是在IE 8中(我们的大多数用户正在使用),.preventDefault()行会引发以下错误:

Unexpected call to method or property access

这是jQuery的好措施。有谁知道IE 8中这种方法的解决方法?

var tempResults = [];
$(function () {
    $('#DRMCompanyName').autocomplete({
        source: function (request, response) {
            $.ajax({
                url: '@Url.Action("compSearchByName", "AgentTransmission")',
                type: 'GET',
                dataType: 'json',
                data: request,
                success: function (data) {
                    tempResults = data;
                    response($.map(data, function (value, key) {
                        return {
                            label: value + " " + key, 
                            value: key
                        };
                    }));
                },
            });
        },
        minLength: 2,
        select: function (event, ui) {
            event.preventDefault(); // <-Causing a problem in IE 8...
            $('#DRMCompanyName').val(tempResults[ui.item.value]);
            $('#DRMCompanyName').text(tempResults[ui.item.value]);

            if ($('#DRMCompanyId').text() == '') {
                $('#DRMCompanyId').val(ui.item.value);
                $('#DRMCompanyId').text(ui.item.value);
            }
        }
    });
});

1 个答案:

答案 0 :(得分:1)

您可以使用return false,但正如我在评论中所说:return false = event.preventDefault() + event.stopPropagation()但在您的情况下,应该符合您的需求。