0
我有一个表单让我们让用户使用geonames API和kendoComboBox选择一个位置。但是,如果用户选择(单击)列表中的第一个项目,这实际上不会选择该项目。只有当他们选择任何其他项目,然后再次选择第一个项目实际上工作。
选择任何其他项目,但第一个工作正常。选择kendoComboBox中的第一个项目
任何人都可以指出为什么这可能是这种情况,我该如何解决它?
这里是我的代码:
<tr>
<td><label>Location:</label></td>
<td><input id="toBeSetByJS" class="locationDisplay" readonly></td>
<td><label>Select Location:</label></td>
<td><input class="locationSelector" id="toBeSetByJS2" type="text">{{ form.location }}</td>
</tr>
<script>
$(".locationSelector").each(function(index) {
// name of hidden input element
var locationInput = $(this).next("input").attr("id");
// set names of selector and display
var locationDisplay = locationInput + "-display";
$(this).parent().prev().prev().children().attr("id", locationDisplay);
var locationSelector = locationInput + "-selector";
$(this).attr("id", locationSelector);
// initialize the location display if necessary
var locationid = $("#" + locationInput).val();
if (locationid != "") {
getLocationName(locationid, locationDisplay);
}
var isocode = $("#isocode").val();
$(this).kendoComboBox({
placeholder: "Select location...",
dataTextField: "name",
dataValueField: "geonameId",
template: '<b>${ data.name }</b>, ${ data.adminName1 }, ${ data.countryName } (${data.fcode})',
filter: "startswith",
dataSource: {
serverFiltering: true,
transport: {
read: {
url: "http://api.geonames.org/searchJSON",
dataType: "jsonp",
data: {
featureClass: "P",
style: "full",
maxRows: 12,
countryBias: isocode,
username: "my.username",
name_startsWith: function() {
return $("#" + locationSelector).data("kendoComboBox").text();
}
}
}
},
schema: {
data: "geonames"
}
},
change: function() {
$("#" + locationDisplay).val(this.text());
$("#" + locationInput).val(this.value());
}
});
});
function getLocationName(geoid, locationDisplayField) {
$.ajax({
url: "http://api.geonames.org/getJSON",
dataType: 'jsonp',
data: {
geonameId: geoid,
style: "full",
username: "my.username"
},
success: function(data) {
//var locName = (data.name + ", " + data.adminName1 + ", " + data.countryName);
$("#" + locationDisplayField).val(data.name);
},
error: function (xhr, textStatus) {
alert('Ooops, geonames server returned: ' + textStatus);
}
});
}
</script>
你可以使[此演示](http://dojo.telerik.com/iQuyo)工作,使这更容易帮助你..? – DontVoteMeDown