以下是我在jQuery.ui之上构建的自动完成功能。它工作得很好。我想做的就是这一行:var targetItem = $("#subject");
。目前正如您所见,请将$("#subject")
分配给自动填充功能中的'targetItem'
变量。
但我希望根据' keyup'来为'targetItem'
变量赋值。文本框的事件。简而言之,我尝试过这样的事情:
var target;
var targetItem2;
$("input[type=text]").on("keyup",function()
{
target = this.id;
alert(target);
targetItem2 = $("#"+target);
});
我把它放在自动完成功能上方,然后分配' targetItem2'到了#target.ctem'变量,但它没有传递值。
有没有办法对这个函数做一些事情,以便可以根据keyup事件或更好的方式分配值,无论如何我可以将参数传递给自动完成函数?
HTML
<div class="ui-widget">
<input id="subject" type="text" name="subject" value="" placeholder="Subject" class="1"/>
</div>
的jQuery
$.widget('custom.mcautocomplete', $.ui.autocomplete, {
_renderItem: function(ul, item) {
var t = '',
result = '';
$.each(this.options.columns, function(index, column) {
t += '<span style="float:left;min-width:' + column.minWidth + ';">' + item[column.valueField ? column.valueField : index] + '</span>'
});
result = $('<li></li>')
.data('ui-autocomplete-item', item)
.append('<a class="mcacAnchor">' + t + '<div style="clear: both;"></div></a>')
.appendTo(ul);
return result;
}
});
//ajax starts
var targetItem = $("#subject");//want to assign value form supplied parameter
$("document").ready(function(){
var data = {
"action": "test"
};
data = $(this).serialize() + "&" + $.param(data);
$.ajax({
type: "GET",
dataType: "json",
url: "store2.php", //Relative or absolute path to response.php file
data: data,
success: function(data) {
//$("#showPlace").html("<br />JSON: " + data );
// alert("Form submitted successfully.\nReturned json: " + data["json"]);
// alert(data);
// console.log(data);
var columns = [{
name: 'level',
minWidth: '200px'},
{
name: 'subject',
minWidth: '70px'},
{
name: 'catid',
minWidth: '70px'}
],
colors = data;
var selectThis=targetItem.attr("class");//textbox class determines which item in array to select
var valueV=targetItem.attr("value");
targetItem.mcautocomplete({
showHeader: true,
columns: columns,
source: colors,
select: function(event, ui) {
// Set the input box's value
this.value = (ui.item ? ui.item[selectThis] : '');
//search for nearest value
// Set the output div's value
$('#show_subject') && $('#show_subject').text(ui.item ? ('Subject = ' + ui.item[selectThis]) : 'Select a subject');
return false;
}
});
}
});
});
答案 0 :(得分:0)
实际上,您可以在事件中使用CPen pen;
COLORREF color = ::GetSysColor(COLOR_3DDKSHADOW);
pen.CreatePen(PS_SOLID, 5, color);
dc.SelectObject(pen);
dc.Rectangle(&rect);
,而不是尝试提取ID并构建要使用的选择器。您只需将其包装在jQuery中即可。这是一个显示代码和this
示例的示例。查看浏览器的日志以查看差异。两者都应该像你期望的那样工作。