jQuery 2.1.4问题

时间:2015-05-29 12:45:58

标签: jquery asp.net-mvc-4

我在视图中添加了一个自动完成字段,它可以正常工作,直到我做出选择然后我在此函数中出错:

 // Support: Android 2.3
 // Workaround failure to string-cast null input
 jQuery.parseJSON = function( data ) {
      return JSON.parse(data + "");
 };

它说有一个无效的字符。如果我将其更改为此,我不会收到错误:

     // Support: Android 2.3
     // Workaround failure to string-cast null input
     jQuery.parseJSON = function( data ) {
         if (data !== undefined)
             return JSON.parse(data + "");
         else
             return null;
     };

我在这里缺少什么吗?我的代码很简单,并在很多视图中使用它:

 <table>
                    <tr>
                        <td>
                            @Html.DisplayNameFor(x=>x.State)&nbsp
                            @Html.TextBoxFor(x=>x.State, new { id = "txtState", style = "width:50px"})
                        </td>
                        <td>
                            @Html.DisplayNameFor(x=>x.Zip)&nbsp
                            @Html.TextBoxForWithTitle(x=>x.Zip, new { id = "txtZip", style = "width:50px"})
                        </td>
                    </tr>
                </table>

JS:

 $("#txtState").autocomplete({
        delay: 0,
        minLength: 0,
        autoFocus: true,
        source: function (request, response) {
            $.ajax({
                type: 'GET',
                data: { 'data': request.term },
                dataType: 'json',
                url: '@Url.Action("GetStates")',
                success: function (data) {
                    response($.map(data, function (obj) {
                        return {
                            value: obj.Text,
                            label: obj.Value
                        }
                    }));
                }
            });
        },
        open: function () {
            $("#txtState").autocomplete("widget").width(150);
        },
        select: function (event, ui) {
            var test = ui.item.value;
        }
    }).focus(function () {
        $("#txtState").autocomplete('search', $("#txtState").val());
    }).blur(function () {
        var keyEvent = $.Event("keydown");
        keyEvent.keyCode = $.ui.keyCode.ENTER;
        $(this).trigger(keyEvent);
        if (neworold != "old") {
            $("#txtState").val($("#txtState").val());
        }
    });

0 个答案:

没有答案