Alfresco工作流表单添加两个文本框值并自动在第三个文本框中显示总和

时间:2016-04-21 11:51:11

标签: java alfresco alfresco-webscripts

我是alfresco的新手我使用kickstart创建工作流我部署到alfresco分享它工作正常,在工作流形式我需要乘以两个文本框值。我希望乘法的结果出现在第3个文本框中,如一旦输入前两个文本框中的值,可以不按任何按钮?怎么样?

1 个答案:

答案 0 :(得分:1)

以下是根据第一个字段中的下拉值隐藏第二个字段的示例中的一些代码段。你有类似的要求所以这应该有所帮助。

首先,编辑您的share-config-custom.xml表单配置,以指示您的属性需要使用自定义表单控件。它看起来像这样:

           <field id="sc:field2" label-id="prop.sc_field2" >
                <control template="/com/someco/components/form/controls/dynamicField.ftl" >
                    <control-param name="maxLength">255</control-param>
                </control>
           </field>

在这种情况下,我将根据sc:field1的值动态隐藏sc:field2。在你的情况下,你有三个你正在处理的领域 - 两个正在成倍增加,第三个领域显示结果。您可能只需要在第三个字段上使用自定义表单控件。它可以轻松地从其他两个字段中获取值。

现在创建自定义表单控件。在自定义表单控件上添加一些绑定到两个字段的onChange事件的JavaScript,以调用计算值的自定义函数。

在我的动态隐藏字段示例中,我使用JQuery在自定义表单控件上执行类似的操作:

<@markup id="js">
    <@script type="text/javascript" src="${url.context}/res/jquery/jquery-1.6.2-min.js" group="form" />
</@>

<script type="text/javascript">//<![CDATA[
    // grab the field1 dropdown element
    var field1El = $("#template_x002e_edit-metadata_x002e_edit-metadata_x0023_default_prop_sc_field1");

    // declare a function that knows how to show/hide the div
    var toggleField2 = function(field1) {
        if (field1 === "Show Field2") {
            $("#field2").show();
        } else {
            $("#template_x002e_edit-metadata_x002e_edit-metadata_x0023_default_prop_sc_field2").val('');
            $("#field2").hide();            
        }
    }

    // bind the field1 dropdown element's change event to a function that calls our toggle function 
    field1El.bind("change", function(e) {
        var selected = $("option:selected", this);
        var field2 = this.value;
        toggleField2(field2);
    });

    // invoke the toggle function based on the current value of the dropdown before it is changed
    // by the user, ie, when the form is first opened
    toggleField2(field1El.find("option:selected").text());
//]]></script>

在您的情况下,您不是基于下拉值显示/隐藏字段,而是抓取两个字段的值,将它们相乘,并在第三个字段中设置它们,但是应用相同的逻辑。只要两个字段中的任何一个发生更改,您都需要重新计算产品并将其存储在第三个字段中。