在tokeninput字段上调用XSP.partialRefreshPost

时间:2014-08-18 02:06:59

标签: javascript jquery xpages xpages-ssjs

我尝试使用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以刷新面板并希望在计算文本字段中显示绑定值的地方。

关于可能遗漏的任何想法?我确定这是愚蠢的事情!

0 个答案:

没有答案