Expand my Community achievements bar.

Introducing Adobe LLM Optimizer: Own your brand’s presence in AI-Powered search and discovery

Mark Solution

This conversation has been locked due to inactivity. Please create a new post.

SOLVED

Validate Touch UI dialog field with a server side call

Avatar

Level 3

I have a touch ui dialog for my AEM component .In this dialog there is a special field (textfield) and I want to validate the value entered by calling a web service.

I use the below JavaScript to register a validator

(function($, window, document) {

       var registry = $(window).adaptTo("foundation-registry");

       registry.register("foundation.validation.validator", {

             selector : "[data-validation=name-validate]",

             validate : function(el) {

                    var element = $(el);

                    var elementVal = element.val();

                    $.get("webserviceURL", function(data) {

                          if (data.error) {

                                 return "Invalid name";

                          } else {

                                 return;

                          }

                    });

             }

       });

})($, window, document);

I can see that the server side call is happening but the validation is not happening in the dialog.

This is because the service call is asynchronous and the validate function get an empty return immediately.

So my question is how to do such server side validations?

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

try validation with jquery like below thread and make sync call

Adding multifields based on numberfield in AEM 6.4

e.g.

jQuery.ajax({
  url
: 'http://example.com/catalog/create/' + targetNode.id + '?name=' + encode(to.inp[0].value),
  success
: function (result) {
  
if (result.isOk == false) alert(result.message);
  
},
  
async: false
  
});

Arun Patidar

AEM LinksLinkedIn

View solution in original post

5 Replies

Avatar

Community Advisor

Hi,

When are you calling web service? On load? on dialog submit or on input field blur event.

Arun Patidar

AEM LinksLinkedIn

Avatar

Level 3

On dialog submit

Avatar

Correct answer by
Community Advisor

try validation with jquery like below thread and make sync call

Adding multifields based on numberfield in AEM 6.4

e.g.

jQuery.ajax({
  url
: 'http://example.com/catalog/create/' + targetNode.id + '?name=' + encode(to.inp[0].value),
  success
: function (result) {
  
if (result.isOk == false) alert(result.message);
  
},
  
async: false
  
});

Arun Patidar

AEM LinksLinkedIn

Avatar

Level 3

Thank you very much.

Avatar

Level 1

Hi @dennyj13354090, How do you fixed the issue ?