如何定制Tapestry jquery自动完成
我正在为Tapestry使用jQuery自动完成mixin。我想更改select函数的行为。我需要将label属性返回到输入字段,并将value属性传递给同级元素。我已经将select函数描述添加到javascript文件中,但什么也没有发生。我想知道如何使我的解决方案有效如何定制Tapestry jquery自动完成,jquery,autocomplete,tapestry,Jquery,Autocomplete,Tapestry,我正在为Tapestry使用jQuery自动完成mixin。我想更改select函数的行为。我需要将label属性返回到输入字段,并将value属性传递给同级元素。我已经将select函数描述添加到javascript文件中,但什么也没有发生。我想知道如何使我的解决方案有效 (function ($) { T5.extendInitializers(function () { function init(specs) { var element = $("#" +
(function ($) {
T5.extendInitializers(function () {
function init(specs) {
var element = $("#" + specs.id),
conf = {
source: function (request, response) {
//...Defining Source Data
},
select: function (e,ui) {
e.preventDefault();
$("#" + specs.id).val(ui.item.label);
$("#" + specs.id).next().val(ui.item.value);
},
change: function(e,ui) {
alert("ss");
}
};
if (specs.delay >= 0)
conf.delay = specs.delay;
if (specs.minLength >= 0)
conf.minLength = specs.minLength;
if (specs.options) {
$.extend(conf, specs.options);
}
element.autocomplete(conf);
}
return {
autocomplete: init
}
});
})(jQuery);
我在我的tapestry应用程序中尝试了一点自动完成。tapestry js twerking的主要功能是要认识到,在幕后仍然有简单的jQuery及其API 这是用鼠标选择值后提交表单的修复程序 在js文件中:
function initSearchBox(options) {
$(document).ready(function () {
var searchBoxElem = $("#" + options.searchBoxId);
searchBoxElem.on('autocompleteselect', function (event, ui) {
// if "enter" pressed
if(event.which == 13){
$('#form').submit();
} else {
searchBoxElem.val(ui.item.label);
$('#form').submit();
}
event.preventDefault();
});
});
}
在java文件中:
@AfterRender
public void afterRender() {
// autocomplete selected fix
JSONObject options = new JSONObject();
options.put("searchBoxId", SEARCH_BOX_ID);
javaScriptSupport.addScript("initSearchBox(%s)", options.toString());
}