我尝试使用Mark Rodens网站上的示例为XPage应用程序实现JQuery tokeninput插件。我一直在回答一些我似乎无法克服的问题。
1)无论XSP.partialRefreshPost调用的立即参数如何,始终会调用inputText2字段的验证 2)所选值不绑定源文档(在本例中为document1.AppName)。
这是我的代码(原谅这个烂摊子)
<xp:panel id="panel1">
<xp:inputText id="inputText1" value="#{document1.AppName}">
</xp:inputText>
<xp:scriptBlock id="scriptBlock3">
<xp:this.value><![CDATA[
$(document).ready(function() {
$("#[id$=inputText1]").tokenInput([{
"first_name": "Arthur",
"last_name": "Godfrey",
"email": "arthur_godfrey@nccu.edu",
"url": "https://si0.twimg.com/sticky/default_profile_images/default_profile_2_normal.png"
},
{
"first_name": "Adam",
"last_name": "Johnson",
"email": "wravo@yahoo.com",
"url": "https://si0.twimg.com/sticky/default_profile_images/default_profile_2_normal.png"
},
{
"first_name": "Jeff",
"last_name": "Johnson",
"email": "bballnine@hotmail.com",
"url": "https://si0.twimg.com/sticky/default_profile_images/default_profile_2_normal.png"
},
{
"first_name": "Adriana",
"last_name": "Jameson",
"email": "adriana.jameson@gmail.com",
"url": "https://si0.twimg.com/sticky/default_profile_images/default_profile_2_normal.png"
}
], {
tokenLimit: 1,
propertyToSearch: "first_name",
onAdd: function (item) {
alert(item.first_name);
var idp = "#{id:panel1}";
document.getElementById("#{id:inputText1}").value = item.first_name
XSP.partialRefreshPost(idp, {immediate:true});
},
});
});
]]></xp:this.value>
</xp:scriptBlock>
getComponent=<xp:text escape="true" id="computedField1">
<xp:this.value><![CDATA[#{javascript:getComponent("inputText1").getValue()}]]></xp:this.value>
</xp:text>
<xp:br></xp:br>
document1.AppName=
<xp:text escape="true" id="computedField2" value="#{document1.AppName}">
</xp:text>
<xp:br></xp:br>
<xp:inputText id="inputText2" required="true">
<xp:this.validators>
<xp:validateRequired message="Please enter a value"></xp:validateRequired>
</xp:this.validators></xp:inputText>
<xp:message id="message1" for="inputText2"></xp:message></xp:panel>
我甚至可以在任何地方获得值的唯一方法是使用onAdd事件中所选项目的值直接设置字段。这是我调用XSP.partialRefreshPost以刷新面板并希望在计算文本字段中显示绑定值的地方。
关于可能遗漏的任何想法?我确定这是愚蠢的事情!