我在视图中添加了一个自动完成字段,它可以正常工作,直到我做出选择然后我在此函数中出错:
// 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) 
@Html.TextBoxFor(x=>x.State, new { id = "txtState", style = "width:50px"})
</td>
<td>
@Html.DisplayNameFor(x=>x.Zip) 
@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());
}
});