Override html5 validation

前端 未结 5 1785
野趣味
野趣味 2020-12-18 04:08

I\'m working on a simple login form, with two fields:

相关标签:
5条回答
  • 2020-12-18 04:31

    Maybe you can use javascript to transform all "required" attributes into "data-required" for you can handle them with javascript and to override html5 form validation with your own handler

    0 讨论(0)
  • 2020-12-18 04:38

    Please be advised that — even though some browsers may support the attribute novalidate on INPUT elements — the HTML code does not validate.

    According to documentation there is no such attribute. Only the FORM element may contain the novalidate attribute.

    • https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form
    • https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input
    • http://www.w3.org/TR/html5/forms.html#the-form-element
    • http://www.w3.org/TR/html5/forms.html#the-input-element
    0 讨论(0)
  • 2020-12-18 04:48

    If you want to conditional HTML5 validation operation.

    My condition is that I want to stop validation if user want to save there data but when its want to send form I want to validate.

    <button name="btn_act" value="Submit" type="submit" class="btn">Submit</button>
    <button name="btn_act" value="save" type="submit" class="btn">Save</button>
    
    $(document).on('click','[name="btn_act"]',function(){
    
            var $form = $(this).closest('form');
            //console.log($form);
            if(this.value === 'save')
                $form[0].noValidate = true;
            else
                $form[0].noValidate = false;
            //$form.data('validator').cancelSubmit = true;
            //$form.submit();
        });
    
    0 讨论(0)
  • 2020-12-18 04:52

    This answer is incorrect. Please see willydee's answer.

    Simple, just add the novalidate property to any element you don't want the browser to validate, like so:

    <form>
      <input type="email" name="email" required novalidate />
      <input type="password" name="password" required />
      <button type="submit">Log in</button>
    </form>
    

    Since you wish to only cancel validation when JavaScript is available, add it with JavaScript (using jQuery for simplified example)

    $('input[novalidate]').attr('novalidate', 'novalidate');
    

    0 讨论(0)
  • 2020-12-18 04:52

    Another option if you are using jQuery for example is to remove the attribute.

    $("input[required],select[required],textarea[required]").removeAttr('required');
    
    0 讨论(0)
提交回复
热议问题