解决方案 jsfiddler
实际上,您没有使用新添加的测试框添加自动完成事件,即它不起作用
<script src="http://cdnjs.cloudflare.com/ajax/libs/knockout/2.1.0/knockout-min.js" type="text/javascript">
</script>
<div class='liveExample'>
<p>You have asked for <span data-bind='text: gifts().length'> </span> gift(s)</p>
<table data-bind='visible: gifts().length > 0'>
<thead>
<tr>
<th>Gift name</th>
<th>Price</th>
<th />
</tr>
</thead>
<tbody data-bind='foreach: gifts'>
<tr>
<td>
<input data-bind='value: name' class='tags' /></td>
<td>
<input data-bind='value: price' /></td>
<td><a href='#' data-bind='click: $root.removeGift'>Delete</a></td>
</tr>
</tbody>
</table>
<button data-bind='click: addGift'>Add Gift</button>
<button data-bind='enable: gifts().length > 0' type='submit'>Submit</button>
</div>
和脚本就像
//For autocomplete extender genarting members
var GiftModel = function (gifts) {
var self = this;
self.gifts = ko.observableArray(gifts);
self.addGift = function () {
self.gifts.push({
name: "",
price: ""
});
var availableTags2 = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
];
$(".tags").autocomplete({
source: availableTags2
});
};
self.removeGift = function (gift) {
self.gifts.remove(gift);
};
};
var viewModel = new GiftModel([
{ name: "", price: "" }
]);
$(document).ready(function () {
ko.applyBindings(viewModel);
var availableTags = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
];
$(".tags").autocomplete({
source: availableTags
});
});
下面是对服务器进行的示例 ajax 调用,在完成该调用后,您可以在客户端分配变量,确保变量是全局变量,以便您可以在不同函数之间访问它
function getResult() {
var URL = "/Home/GetResult";
var typeJSON = {};
typeJSON["sql"] = $("#sqltext").val();
$.ajax({
type: "POST",
url: URL,
data: typeJSON,//data to be send to server
//omit above data tag if not required to send data to server
success: function (data) {
//on success you can assign your variable here
},
failure: function (data) {
//on faliure of ajax call can show some message here
}
});
}