사용자 정의 유효성 검사기로 자동 필드를 만들었고 첫 번째 커플에 대해 모든 것을 작동하지만 다른 두 필드를 추가하면 유효성 검사기가 첫 번째 필드를 유효성 검사하는 방식으로 작동합니다.
이것은 내 코드입니다.
<div id="groupwork-fields" >
<div class="lfr-form-row lfr-form-row-inline">
<div class="row-fields">
<aui:input fieldParam='name0' id="name0" cssClass="full-size"
name="name0"
label='<%=AwardConstants.LABEL_NAME %>'
value="">
<aui:validator name="custom" errorMessage="fill-name">
function (val, fieldNode, ruleValue) {
var result = true;
var selector = document.getElementById("<portlet:namespace/>select-group").value;
if (selector == 1 && val === "") {
result = false;
}
return result;
}
</aui:validator>
</aui:input>
<aui:input cssClass="full-size"
id="email0" fieldParam='email0'
name="email0"
label='<%=AwardConstants.LABEL_EMAIL %>'
value="">
<aui:validator name="maxLength">100</aui:validator>
<aui:validator name="email"></aui:validator>
<aui:validator name="custom" errorMessage="fill-email">
function (val, fieldNode, ruleValue) {
var result = true;
var name = document.getElementById("<portlet:namespace/>name0").value;
if (name !== "" && val === "") {
result = false;
}
return result;
}
</aui:validator>
</aui:input>
</div>
</div>
</div>
그리고 이것은 내 스크립트입니다.
<aui:script>
AUI().use('liferay-auto-fields',function(A) {
new Liferay.AutoFields({
contentBox: '#groupwork-fields',
fieldIndexes: '<portlet:namespace />groupworkIndexes'
}).render();
});
</aui:script>
문제는 항상 첫 번째 입력의 값을 얻고 자체 쌍을 취하고 싶습니다.
감사
여기,
나는 자동 필드에서 나이에 대한 사용자 정의 유효성 검사기로 시도했으며 작동 합니다.
<aui:input name="age" value='' label="Age"></aui:input>
<aui:script use="liferay-auto-fields">
// declares rules
var rules= {};
// override default error messages
var fieldStrings = {};
AUI().use('aui-form-validator',
function(A) {
var DEFAULTS_FORM_VALIDATOR = A.config.FormValidator;
A.mix(
DEFAULTS_FORM_VALIDATOR.RULES,
{
customRuleForAge:function (val, fieldNode, ruleValue) {
var result = false;
if (val >=18) {
result = true;
}
return result;
},
},
true
);
A.mix(
DEFAULTS_FORM_VALIDATOR.STRINGS,
{
customRuleForAge:"Age Should Be more than 18",
},
true
);
rules = {
<portlet:namespace/>age: {
customRuleForAge: true
}
};
new A.FormValidator(
{
boundingBox: '#<portlet:namespace/>researchSubjectForm',
fieldStrings: fieldStrings,
rules: rules,
showAllMessages: true
}
);
}
);
new Liferay.AutoFields({
contentBox: '#research-subject-fields',
fieldIndexes: '<portlet:namespace />rowIndexes',
on: {
'clone': function(container){
// container.guid will be the number for newly generated row.
rules["<portlet:namespace />age" + container.guid] = {customRuleForAge: true};
fieldStrings["<portlet:namespace />age"+container.guid] = {customRuleForAge};
}
}
}).render();
</aui:script>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다