ユーザーがサプライヤー名を入力するテキスト ボックスがあります。ブラーでは、Web サービスをチェックしてサプライヤーが存在するかどうかを確認したいと考えています。存在する場合は、Web サービスからサプライヤー ID を返し、それを使用して別のテキスト ボックスに入力したいと考えています。
他の場所でうまく使用しているため、Webサービスは正常に機能しています(オートコンプリートを行うための同様のコードを使用)。JSONでデータを返し、次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
-<ArrayOfSuppliers xmlns="http://tempuri.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-<Suppliers>
<SupplierID>1</SupplierID>
<SupplierName>Supplier 1</SupplierName>
</Suppliers>
</ArrayOfSuppliers>
この次のコードはめちゃくちゃで、そのままでは機能しません。私が何をしようとしているのかを説明するのに役立つことを願っています.
開始点として、「応答」が未定義であるというエラーが表示されます。理由はわかりますが、それを修正するために何をする必要があるかを知るには十分ではありません。
$(document).ready(function () {
$("[id$=txtSupplier]").blur(function () {
$.ajax({
type: "POST",
url: "http://localhost:52350/FabRouting/Webservice/SupplierList.asmx/GetSuppliers",
data: "{ 'SupplierSearch': '" + $("[id$=txtSupplier]").val() + "' }",
contentType: "application/json; charset=utf-8",
dataType: "json",
dataFilter: function (data) { return data; },
success: function (data) {
response($.map(data.d, function (item) {
return {
value: item.SupplierName,
id: item.SupplierID
}
}))
},
error: function(e){
$("[id$=lblSupplier]").html("Unavailable");
}
});
}
);
});
これが機能するようになった後も、返されたものを取得してテキスト ボックスを設定する方法を知る必要がありますが、このコードをある程度機能させることができれば、おそらくそれを解決することができます。
編集
このコードでオートコンプリートが機能しています:
$(document).ready(function () {
$(".cRejectedOnSDRR").autocomplete({
source: function (request, response) {
$.ajax({
url: "http://localhost:52350/FabRouting/Webservice/ReportList.asmx/GetReports",
data: "{ 'ReportNumberSearch': '" + request.term + "' }",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
dataFilter: function (data) { return data; },
success: function (data) {
response($.map(data.d, function (item) {
return {
value: item.ReportNumber,
id: item.SDRRID
}
}))
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
},
minLength: 1,
select: function (event, ui) {
$("[id$=lblRejectedOnSDRRID]").html(ui.item.id);
},
});
});
そして、それをベースとして、私が上で述べたぼかしを行うための基礎として使用しようとしていました. Web サービスから返されたデータを単純に取得して使用する方法を十分に理解していないため、オートコンプリート コードをリバース エンジニアリングして、理解できるようにしようとしていました。