简体   繁体   中英

Check empty field with validate

I have this code:

$("#formulario").validate({
ignore: [],
rules: {
        nome:{required: true},
        contato:{required: true},
        telefone:{required: true},
         cidade:{required: true},
        email:{required: true, email: true},
        mensagem:{required: true},
      },
  });

It works perfectly!

But I inserted in the form a hidden field called URL and the above code should only be executed IF that hidden field is EMPTY.

How to make?

Assuming, the hidden input field has id url .

You can wrap your function call inside an if condition in which you can check if the hidden field with id url is empty or not.

var hiddenField = $('#url');
 if( hiddenField.val().length === 0 ) {
       $("#formulario").validate({
    ignore: [],
    rules: {
        nome:{required: true},
        contato:{required: true},
        telefone:{required: true},
        cidade:{required: true},
        email:{required: true, email: true},
        mensagem:{required: true},
       }
    });
   }

You could do some validation in the jQuery validator...

$("#formulario").validate({
ignore: [],
rules: {
        newHiddenField:{maxlength: 0},
        ...
        nome:{required: true},
        contato:{required: true},
        telefone:{required: true},
        cidade:{required: true},
        email:{required: true, email: true},
        mensagem:{required: true},
      }
});

Or you could check the field is empty then call the validator if it is...

let isHiddenFieldEmpty = Boolean($("#formulario input[name=newHiddenField]").val().length === 0);

isHiddenFieldEmpty && $("#formulario").validate({
ignore: [],
rules: {
        nome:{required: true},
        contato:{required: true},
        telefone:{required: true},
        cidade:{required: true},
        email:{required: true, email: true},
        mensagem:{required: true},
      }
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM