我希望这是一个相当简单的解决方案,但是花了我整天的时间才能走到这一步,而且我很难弄清问题所在。
我有一个名为JobTagsList.xml的XML文件:
<Tags><Tag Tag="consolidated"/><Tag Tag="test"/></Tags>
以及带有以下JQuery代码(包括所有脚本,以防万一)的ASP.NET Webforms页面:
<script src="../Scripts/jquery-ui-1.12.1.min.js"></script>
<script src="../Scripts/tag-it.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var isrecurring = $("#<%=IsRecurringJob.ClientID %>").prop('checked');
// console.log(isrecurring);
if (isrecurring) {
$(".showwhenrecurring").show();
} else {
$(".showwhenrecurring").hide();
}
var jobid = $("#<%=JobID.ClientID %>");
if (jobid.val() != null && jobid.val() != '') {
} else {
$(".hidewhennew").hide();
}
});
//tags handling starts here
function split(val) {
return val.split(/,\s*/);
}
function extractLast(term) {
return split(term).pop();
}
$(function () {
var tagslist = new Array();
$.ajax({
type: "GET",
url: "../XML/JobTagsList.xml",
dataType: "xml",
success: function (xml) {
//but if it's multible items then loop
$(xml).find('Tag').each(function () {
tagslist.push($(this).attr('Tag'));
});
}
});
$("#<% =txtTags.ClientID %>")
.on("keydown", function (event) {
if (event.keyCode === $.ui.keyCode.TAB &&
$(this).autocomplete("instance").menu.active) {
event.preventDefault();
}
});
$("#<% =txtTags.ClientID %>").tagit({
availableTags: tagslist,
// This will make Tag-it submit a single form value, as a comma-delimited field.
singleField: true,
singleFieldNode: $("#<% =txtTags.ClientID %>")
});
});
function fixform() {
if (opener.document.getElementById("PageForm").target != "_blank") return;
opener.document.getElementById("PageForm").target = "";
opener.document.getElementById("PageForm").action = opener.location.href;
}
</script>
代码编译没有错误,但是根据Chrome调试器,当它应该有两个项目时[tag]数组为空(['test','consolidated'])。请帮忙。 :)