我正在尝试为作业号字段提供预先输入功能。字段的模式是8,然后是必要的零,以使它们键入的字符串总共10个数字。换句话说,8000001234或8001234567.在这些示例中,用户只想键入1234或1234567并使类型提前返回相应的文档。这可能吗?
答案 0 :(得分:4)
这可以通过在xp:typeAhead中使用参数 valueMarkup 来完成。 在建议响应中,您可以在 display:none 部分中添加要添加到字段中的值,类非正式的范围是建议列表中显示的部分。您可以使用HTML代码修改/设计非正式部分(例如,包括多行信息,添加图像等)。
这是一个简单的例子:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:inputText id="inputText1" value="#{requestScope.TypeAhead}">
<xp:typeAhead mode="partial" minChars="1"
var="searchValue" valueMarkup="true">
<xp:this.valueList>
<![CDATA[#{javascript:
var directoryTypeahead = function (searchValue:string) {
/*** generate your matches ***/
var matches = {};
for( var i=10;i<20;i++){
matches[i] = { display: "80000" + i };
}
/*** return typeahead data ***/
var returnList = "<ul>";
for (var matchEntry in matches) {
var match = matches[matchEntry];
var matchDetails:string = [
"<li><div style=\"display:none;\">",
matchEntry,
"</div><span class=\"informal\"><strong>",
match.display,
"</span></li>"
].join("");
returnList += matchDetails;
}
returnList += "</ul>";
return returnList;
}
directoryTypeahead(searchValue)
}]]>
</xp:this.valueList>
</xp:typeAhead>
</xp:inputText>
您必须在生成匹配之间更改部分以满足您的要求。
答案 1 :(得分:2)
Roy - 另一种选择是推出自己的typeAhead而不是使用开箱即用的版本
http://xomino.com/2012/05/01/jquery-in-xpages-8-tokeninput-autocomplete/
使用令牌自动填充功能,您可以控制搜索输入和显示输出 - 这样您就可以显示整个80000123字符串,并且123将突出显示为用户输入的文本。
答案 2 :(得分:-1)
可能是部分答案 - 但我偶然发现Rasmus Bauck的一篇博客文章解释了一种用你自己的代码处理预先输入类型调用的技术。
我没有去尝试它,但是我看到了你的问题,它让我记忆犹新。
http://devxpages.blogspot.com.au/2010/04/extending-xpages-type-ahead.html
希望它有所帮助,
布伦丹