我试图为工作流表单上的一些自定义字段创建自定义验证处理程序。A有两个字段:项目开始日期和项目结束日期。
对于这两个字段,我需要两种类型的验证:
不过,我仍在开始创建自定义验证-处理程序。首先,我尝试了一些只包含数字的文本字段的简单验证处理程序,但这是无效的。我做了以下工作:
在我的share-config-custom.xml中添加
<config>
<forms>
<dependencies>
<js src="/custom-form-validation.js" />
</dependencies>
</forms>
并连接到我的领域
<field id="mcwm:shortProjectNumber" set="general" mandatory="true">
<constraint-handlers>
<constraint type="MANDATORY" validation-handler="Alfresco.forms.validation.checkNumber" event="keyup" />
</constraint-handlers>
</field>自定义表单-validation.js文件是
Alfresco.forms.validation.checkNumber = function checkNumber(field, args, event, form, silent, message) {
var ok = (field.value=="") || field.value.match("^\\d{4}\\/\\d{4}$");
var valid = ok != null && ok;
if (!valid) {
YAHOO.util.Dom.setStyle(field.id, "border", "2px solid red");
}
else {
YAHOO.util.Dom.setStyle(field.id, "border", "");
}
// Inform the user if invalid
if (!valid && !silent && form)
{
var msg = "The number must match the pattern 1234/5678.";
form.addError(form.getFieldLabel(field.id) + " " + msg, field);
}
return valid;
};我把自定义表单-validation.js文件放在我的opt\tomcat\shared\classes\alfresco\web-extension文件夹中,但是根本没有字段验证?对此有什么建议吗?
你好,阿列克萨德纳尔
发布于 2012-03-02 03:16:48
共享中的字段验证是作为客户端JavaScript实现的。因此,您的JavaScript文件位于web应用程序的根目录中(最好是位于该目录结构之下),而不是在WEB下。例如,您可能希望将其放在$TOMCAT_HOME/webapp/share/extension/js下面。您可能必须相应地调整依赖项引用。
接下来,不要将自定义代码放在Alfresco的命名空间中。创造你自己的。通过在JavaScript文件的开头放置类似的内容,您可以创建自己的命名空间:
if (typeof SomeCo == "undefined" || !SomeCo)
{
var SomeCo = {};
}您可能还想缩小您的JavaScript。然后,打开共享调试。要做到这一点,您可以将以下内容放置在share-config-custom.xml中(该文件位于$TOMCAT_HOME/webapps/share/WEB-INF/classes/alfresco/web-extension):下)
<alfresco-config>
<!-- Put Share Client in debug mode -->
<config replace="true">
<flags>
<client-debug>false</client-debug>
<client-debug-autologging>false</client-debug-autologging>
</flags>
</config>
</alfresco-config>这样,您就可以使用浏览器的开发人员控制台逐步遍历客户端JavaScript,并找出验证器不工作的原因。
发布于 2017-08-24 11:59:10
您可以使用另一种方法直接使用javascript来实现表单字段验证处理程序。我的意思是,您可以添加一个侦听器来控制何时提交表单,并添加一个条件来取消该子项目。因此,在加载表单时,可以使用这样的代码:
//Add a listener to control when the form is submitted
document.body.addEventListener("submit", function (event) {
//If there are wrong values
if(wrongValues()){
//Cancel the event
event.stopPropagation();
event.preventDefault();
}
}, true);如果您想了解更多有关此解决方案的详细信息,可以访问此帖子
https://stackoverflow.com/questions/9517208
复制相似问题