Existe alguma maneira de desabilitar a validação do lado do cliente para a caixa de texto de data do dojo?

StackOverflow https://stackoverflow.com/questions/15514

  •  08-06-2019
  •  | 
  •  

Pergunta

No meu exemplo abaixo estou usando um dijit.form.DateTextBox:

<input type="text" name="startDate" dojoType="dijit.form.DateTextBox" constraints="{datePattern:'MM/dd/yyyy'}"  value='<c:out value="${sessionScope.adminMessageForm.startDate}"/>' />

Por exemplo, se o usuário começar a inserir "asdf" na data, o campo ficará amarelo e uma mensagem de erro pop-up aparecerá dizendo The value entered is not valid..Mesmo se eu remover o constraints="{datePattern:'MM/dd/yyyy'}" ainda valida.

Sem entrar em detalhes sobre o motivo, gostaria de poder manter o dojoType e ainda evitar a validação em circunstâncias específicas.

Foi útil?

Solução

Tente substituir o método de validação na sua marcação.

Isso funcionará (apenas testado):

<input type="text" name="startDate" dojoType="dijit.form.DateTextBox" 
  constraints="{datePattern:'MM/dd/yyyy'}"  
  value='<c:out value="${sessionScope.adminMessageForm.startDate}"/>'
  validate='return true;'
/>

Outras dicas

Minha única sugestão é remover programaticamente o dojoType no lado do servidor ou no lado do cliente.Não é possível manter o dojoType e não validá-lo.A menos que você crie seu próprio tipo que contenha lógica.

Tive um problema semelhante, onde o ValidationTextBox atendia todas as minhas necessidades, mas era necessário desabilitar as rotinas de validação até que o usuário tivesse pressionado Enviar pela primeira vez.

Minha solução foi clonar isso em um ValidationConditionalTextBox com alguns novos métodos:

    enableValidator:function() {
        this.validatorOn = true;
    },

    disableValidator: function() {
        this.validatorOn = false;
    },

Então - no validator:function() adicionei uma única verificação:

        if (this.validatorOn)
        { ... }

Bastante simples, meu valor padrão para validatorOn é falso (isso aparece logo no topo do javascript).Quando meu formulário for enviado, basta chamar enableValidator().Você pode ver o JavaScript completo aqui:

http://lilawnsprinklers.com/js/dijit/form/ValidationTextBox.js

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top