如何添加' required'验证到aui:从js动态输入

时间:2017-12-12 10:49:56

标签: javascript liferay liferay-aui

这里是aui:input

<aui:input name="price" id="price" showRequiredLabel="false" value="">
  <aui:validator>
    // I have some custom validator for price format
  </aui:validator>
</aui:input>

我有一个单选按钮组。点击其中一个单选按钮,我想动态应用所需的aui验证器。我尝试在js中添加required=true,但是可以正常运行,而且需要使用HTML5&#39;验证。我想通过AUI验证来实现这一点。

2 个答案:

答案 0 :(得分:0)

JSP评估在服务器端工作,在DOM上生成不同的标记(以及可能的脚本)。因此,它不是一个简单的属性,你必须改变,但更复杂。

为了验证您是否真的想要这样做,我会采取以下方式:

  • 在没有验证器的情况下生成一次页面,捕获生成的HTML
  • 然后重新部署portlet,现在使用验证器,再次捕获页面源
  • 将两个结果区分开以查看生成的内容。

一旦您确定是否值得在运行时添加所需的验证器 - 请确定您要执行的操作。

请注意,如果添加验证程序过于复杂,您也会采用相反的方式:考虑对验证程序进行硬编码并在运行时停用它 - 这可能会更容易。

在@ Klimiuk评论之后编辑:你可能会更高兴with aui-form-validator而不是寻找JSP输出,因为标签由于服务器端的处理而容易混乱。

答案 1 :(得分:0)

您可以使用Liferay JS Utils获取formValidator:

var liferayForm = Liferay.Form.get('YOUR-FORM-ID');
liferayForm.formValidator.get('rules')['ID-OF-YOUR-INPUT-FIELD']={required: true};

现在您需要输入字段(客户端验证)。