JQuery के माध्यम से सबमिट किए बिना html5 फॉर्म सत्यापन को कैसे मजबूर करें


286

मेरे ऐप में यह फ़ॉर्म है और मैं इसे AJAX के माध्यम से जमा करूंगा, लेकिन मैं क्लाइंट-साइड सत्यापन के लिए HTML5 का उपयोग करना चाहता हूं। इसलिए मैं फॉर्म सत्यापन को लागू करने में सक्षम होना चाहता हूं, शायद jQuery के माध्यम से।

मैं फॉर्म सबमिट किए बिना सत्यापन को ट्रिगर करना चाहता हूं। क्या यह संभव है?


क्या आप निर्दिष्ट कर सकते हैं कि आप किस बिंदु पर फ़ॉर्म को मान्य करना चाहते हैं? क्या मान्यता को ट्रिगर करता है? क्या आप प्रत्येक फ़ील्ड को मान्य करना चाहते हैं जब उपयोगकर्ता प्रकार, फ़ील्ड में प्रवेश करता / छोड़ता है, मूल्य बदलता है?
पीटर पज्चल

6
मैं ऐसा कुछ करना संभव होगा: $ ("# my_form")। ट्रिगरHtml5Validation ()
razenha

यह पृष्ठ लिंक की
Dan Bray

आप इसे बिना jQuery के प्राप्त कर सकते हैं। मेरा समाधान देखें।
डेन ब्रे

जवाबों:


444

यह जाँचने के लिए कि कोई निश्चित फ़ील्ड मान्य है, उपयोग करें:

$('#myField')[0].checkValidity(); // returns true/false

यह जाँचने के लिए कि फॉर्म वैध है, का उपयोग करें:

$('#myForm')[0].checkValidity(); // returns true/false

यदि आप मूल त्रुटि संदेश प्रदर्शित करना चाहते हैं, जिसमें कुछ ब्राउज़र (जैसे क्रोम) हैं, तो दुर्भाग्य से ऐसा करने का एकमात्र तरीका है, इस तरह से फ़ॉर्म सबमिट करना:

var $myForm = $('#myForm');

if(! $myForm[0].checkValidity()) {
  // If the form is invalid, submit it. The form won't actually submit;
  // this will just cause the browser to display the native HTML5 error messages.
  $myForm.find(':submit').click();
}

उम्मीद है की यह मदद करेगा। ध्यान रखें कि HTML5 सत्यापन सभी ब्राउज़रों में समर्थित नहीं है।


1
मैंने आपके समाधान की कोशिश की, लेकिन यह तब भी फॉर्म जमा करता है जब $ myForm.submit () लाइन निष्पादित होती है।
यशपाल सिंगला

27
के $myForm.submit()साथ बदलने की कोशिश$myForm.find(':submit').click()
इब्राहीम

8
अब्राहम सही है। आपको वास्तव में सबमिट बटन (प्रोग्रामेटिकली) पर क्लिक करना होगा। $ MyForm.submit () को कॉल करने से सत्यापन चालू नहीं होगा।
केविन टाइघे

75
यदि आपके फॉर्म में एक सबमिट बटन नहीं है, तो आप एक नकली कर सकते हैं:$('<input type="submit">').hide().appendTo($myForm).click().remove();
दर्शन

15
यह उत्तर टिप के बारे में बहुत उपयोगी है checkValidity(), लेकिन इसमें एक खतरनाक त्रुटि भी है। checkValidity()वह है जो मूल ब्राउज़र त्रुटि संदेशों को ट्रिगर करता है, सबमिट बटन पर क्लिक नहीं करता है। यदि आपके पास एक ईवेंट श्रोता है जो सबमिट बटन पर क्लिक करने के लिए सुनता है, तो आप `$ myForm.find (': सबमिट') करते समय इसे ट्रिगर करेंगे। क्लिक करें ()`, जो स्वयं को ट्रिगर करेगा और अनंत पुनरावर्तन का कारण बनेगा।
खराब अनुरोध

30

मुझे यह समाधान मेरे लिए काम करने के लिए मिला। बस इस तरह एक जावास्क्रिप्ट समारोह कहते हैं:

action="javascript:myFunction();"

तो आप html5 सत्यापन है ... वास्तव में सरल :-)


3
इसने मेरे लिए भी काम किया और मुझे लगता है कि यह सबसे अच्छा जवाब है। मैं action="javascript:0"पर और सभी के लिए <form>बाध्य clickघटना सेट और महान काम किया। मैं सभी जेएस को HTML से बाहर रखता हूं। तब जारी रखने के लिए परीक्षण कर सकते हैं । <button>MyFunction()MyFunctionform.checkValidity()
orad

3
सैंपल कोड हमेशा हेल्पफुल होता है।
बीजे पटेल

10
फॉर्म के लिए बाइंडिंग onsubmit()लगभग हमेशा बटन से बंधने से बेहतर है onclick(), क्योंकि फॉर्म जमा करने के अन्य तरीके हैं। ( returnकुंजी मारकर उल्लेखनीय रूप से ।)
अल्टटैग

+1 यह अद्भुत है। यदि फ़ील्ड खाली है या यदि उसका ईमेल है तो कोई और जावास्क्रिप्ट विधि सत्यापन नहीं है। ब्राउज़र हमारे लिए कर सकता है! क्या यह क्रॉस ब्राउज़र संगत है?
जो ई।

2
न तो action="javascript:myFunction();"या action="javascript:0"काम करता है अब और नवीनतम फ़ायरफ़ॉक्स (67) में। हालांकि क्रोम पर काम करता है।
बोबज जूल

23
    if $("form")[0].checkValidity()
      $.ajax(
        url: "url"
        type: "post"
        data: {

        }
        dataType: "json"
        success: (data) ->

      )
    else
      #important
      $("form")[0].reportValidity()

से: html5 फॉर्म सत्यापन


4
reportValidityहै केवल समर्थित क्रोम 40.0 से
एम एम

वह कॉफी है।
एम्फ़ैटेमाचिन

1
reportValidity अब संस्करण 49 के बाद से फ़ायरफ़ॉक्स द्वारा समर्थित है
जस्टिन

मुझे यह हिस्सा पसंद है $("form")[0].reportValidity()। मुझे इसकी आवश्यकता है कि यदि वैधता जांच विफल हो जाए।
fsevenm

महान! धन्यवाद!
स्टेफो

18

मेरे लिए नीचे कोड काम करता है,

$("#btn").click(function () {

    if ($("#frm")[0].checkValidity())
        alert('sucess');
    else
        //Validate Form
        $("#frm")[0].reportValidity()

});

1
reportValidity()आवश्यक क्षेत्रों को उजागर करने के लिए सबसे अच्छा कार्य है।
जमशेद अहमद

हां, यह एक आकर्षण की तरह काम करता है, लेकिन केवल अगर ब्राउज़र इसका समर्थन करता है। caniuse.com/#search=reportValidity
मेगामाट

16

यहाँ एक सामान्य तरीका है जो थोड़ा साफ है:

अपना फॉर्म इस तरह बनाएं (ऐसा डमी फॉर्म हो सकता है जो कुछ भी न करे):

<form class="validateDontSubmit">
...

उन सभी रूपों को बांधें जिन्हें आप वास्तव में सबमिट नहीं करना चाहते हैं:

$(document).on('submit','.validateDontSubmit',function (e) {
    //prevent the form from doing a submit
    e.preventDefault();
    return false;
})

अब आप कहते हैं कि आपके पास एक <a>(भीतर <form>) है जिसे क्लिक करने पर आप फॉर्म को मान्य करना चाहते हैं:

$('#myLink').click(function(e){
  //Leverage the HTML5 validation w/ ajax. Have to submit to get em. Wont actually submit cuz form
  //has .validateDontSubmit class
  var $theForm = $(this).closest('form');
  //Some browsers don't implement checkValidity
  if (( typeof($theForm[0].checkValidity) == "function" ) && !$theForm[0].checkValidity()) {
     return;
  }

  //if you've gotten here - play on playa'
});

यहाँ कुछ नोट:

  • मैंने देखा है कि आपको वास्तव में सत्यापन के लिए फ़ॉर्म जमा करने की आवश्यकता नहीं है - कॉल checkValidity()पर्याप्त है (कम से कम क्रोम में)। यदि अन्य इस सिद्धांत को अन्य ब्राउज़रों पर परीक्षण के साथ टिप्पणी जोड़ सकते हैं तो मैं इस उत्तर को अपडेट करूंगा।
  • सत्यापन को ट्रिगर करने वाली चीज़ के भीतर नहीं होना चाहिए <form>। यह एक सामान्य उद्देश्य समाधान के लिए सिर्फ एक साफ और लचीला तरीका था।

12

पार्टी के लिए देर हो सकती है लेकिन फिर भी किसी तरह इस समस्या को हल करने की कोशिश करते हुए मुझे यह सवाल मिला। चूंकि इस पृष्ठ के किसी भी कोड ने मेरे लिए काम नहीं किया, इस बीच मैं समाधान के साथ आया जो निर्दिष्ट के रूप में काम करता है।

समस्या यह है कि जब आपके <form>DOM में एकल <button>तत्व होता है, एक बार निकाल दिया जाता है, तो<button> यह स्वचालित रूप से सुमित हो जाएगा। यदि आप AJAX के साथ खेलते हैं, तो संभवतः आपको डिफ़ॉल्ट कार्रवाई को रोकने की आवश्यकता है। लेकिन एक पकड़ है: यदि आप ऐसा करते हैं, तो आप बुनियादी एचटीएमएल 5 सत्यापन को भी रोकेंगे। इसलिए, उस बटन पर चूक को रोकने के लिए यह एक अच्छा कॉल है, यदि फॉर्म वैध है। अन्यथा, HTML5 सत्यापन आपको सबमिट करने से बचाएगा। jQuery checkValidity()इससे मदद करेगा:

jQuery:

$(document).ready(function() {
  $('#buttonID').on('click', function(event) {
    var isvalidate = $("#formID")[0].checkValidity();
    if (isvalidate) {
      event.preventDefault();
      // HERE YOU CAN PUT YOUR AJAX CALL
    }
  });
});

ऊपर वर्णित कोड आपको फ़ॉर्म सबमिट किए बिना मूल एचटीएमएल 5 सत्यापन (प्रकार और पैटर्न मिलान के साथ) का उपयोग करने की अनुमति देगा।


6

आप जावास्क्रिप्ट / jquery का उपयोग करके दो अलग-अलग चीजों "एचटीएमएल 5 सत्यापन" और एचटीएमएल फॉर्म के सत्यापन की बात करते हैं।

HTML5 "में एक फॉर्म को मान्य करने के लिए" अंतर्निहित विकल्प हैं। जैसे कि फ़ील्ड पर "आवश्यक" विशेषता का उपयोग करना, जो (ब्राउज़र कार्यान्वयन के आधार पर) जावास्क्रिप्ट / jquery का उपयोग किए बिना फ़ॉर्म सबमिशन को विफल कर सकता है।

Javascrip / jquery के साथ आप ऐसा कुछ कर सकते हैं

$('your_form_id').bind('submit', function() {
   // validate your form here
   return (valid) ? true : false;
});

2
मैं फॉर्म सबमिट किए बिना सत्यापन को ट्रिगर करना चाहता हूं।
रजनीहा r

आपके अपडेट के अनुसार - मुझे अभी भी लगता है कि यह सही समाधान है। आपने निर्दिष्ट नहीं किया कि आप triggerHtml5Validation()फ़ंक्शन को कैसे ट्रिगर करना चाहते हैं । उपरोक्त कोड आपके फॉर्म में सबमिट ईवेंट संलग्न करेगा; सबमिट करने पर आप घटना को रोकते हैं और फ़ॉर्म को मान्य करते हैं। यदि आप कभी भी फॉर्म जमा नहीं करना चाहते हैं, तो बस return false;और सबमिट कभी नहीं होगा।
पीटर पजचेल

7
return (valid) ? true : false=== return valid। :)
डेवी कोस्कियान्स्की विडाल

1
उफ़, I + 1'ed @davi क्योंकि मैं पहली बार में एक ही बात सोच रहा था। लेकिन यह वास्तव में एक ही नहीं है, जैसा कि केवल return validअशक्त / अपरिभाषित मूल्यों के लिए गलत नहीं है। लेकिन यह वास्तव में कोई फर्क नहीं पड़ता, जवाब वैसे भी छद्म कोड था, मुद्दा यह है: फॉर्म सबमिट नहीं करने के लिए गलत रिटर्न का उपयोग करें ^ ^
T_D

5
var $myForm = $('#myForm ');
if (!$myForm[0].checkValidity()) {
  $('<input type="submit">').hide().appendTo($myForm).click().remove();
}

यह क्रोम 74 पर काम नहीं करता है। क्या मैं इस पर प्रकाश डाल सकता हूं?
कोडप्लायर

3

सबमिट बटन का उपयोग किए बिना फॉर्म के सभी आवश्यक फ़ील्ड की जांच करने के लिए आप नीचे दिए गए फ़ंक्शन का उपयोग कर सकते हैं।

आपको नियंत्रण के लिए आवश्यक विशेषता असाइन करनी होगी

  $("#btnSave").click(function () {
    $(":input[required]").each(function () {                     
        var myForm = $('#form1');
        if (!$myForm[0].checkValidity()) 
          {                
            $(myForm).submit();              
          }
        });
  });

3

इसे प्राप्त करने के लिए आपको jQuery की आवश्यकता नहीं है। अपने फॉर्म में जोड़ें:

onsubmit="return buttonSubmit(this)

या जावास्क्रिप्ट में:

myform.setAttribute("onsubmit", "return buttonSubmit(this)");

अपने buttonSubmitफ़ंक्शन में (या जिसे आप इसे कहते हैं), आप AJAX का उपयोग करके फ़ॉर्म सबमिट कर सकते हैं। buttonSubmitयदि आपका फॉर्म एचटीएमएल 5 में मान्य है तो ही कॉल किया जाएगा।

मामले में यह किसी को भी मदद करता है, यहाँ मेरा buttonSubmitकार्य है:

function buttonSubmit(e)
{
    var ajax;
    var formData = new FormData();
    for (i = 0; i < e.elements.length; i++)
    {
        if (e.elements[i].type == "submit")
        {
            if (submitvalue == e.elements[i].value)
            {
                submit = e.elements[i];
                submit.disabled = true;
            }
        }
        else if (e.elements[i].type == "radio")
        {
            if (e.elements[i].checked)
                formData.append(e.elements[i].name, e.elements[i].value);
        }
        else
            formData.append(e.elements[i].name, e.elements[i].value);
    }
    formData.append("javascript", "javascript");
    var action = e.action;
    status = action.split('/').reverse()[0] + "-status";
    ajax = new XMLHttpRequest();
    ajax.addEventListener("load", manageLoad, false);
    ajax.addEventListener("error", manageError, false);
    ajax.open("POST", action);
    ajax.send(formData);
    return false;
}

मेरे कुछ रूपों में कई सबमिट बटन हैं, इसलिए यह पंक्ति है if (submitvalue == e.elements[i].value)। मैंने submitvalueएक क्लिक ईवेंट का उपयोग करने का मान निर्धारित किया है ।


2

मेरे पास एक जटिल स्थिति थी, जहां मुझे विभिन्न चीजों को संसाधित करने के लिए कई सबमिट बटन की आवश्यकता थी। उदाहरण के लिए, सहेजें और हटाएं।

आधार यह था कि यह भी विनीत था, इसलिए मैं इसे सामान्य बटन नहीं बना सका। लेकिन यह भी html5 सत्यापन का उपयोग करना चाहता था।

उपयोगकर्ता द्वारा अपेक्षित डिफॉल्ट सबमिशन को ट्रिगर करने के लिए दर्ज किए जाने की स्थिति में सबमिट ईवेंट को ओवरराइड किया गया था; इस उदाहरण में सहेजें।

यहां फॉर्म की प्रोसेसिंग के प्रयास अभी भी जावास्क्रिप्ट के साथ / बिना और HTML5 सत्यापन के साथ काम करते हैं, दोनों सबमिट और क्लिक घटनाओं के साथ।

jsFiddle डेमो - सबमिट के साथ एचटीएमएल 5 सत्यापन और ओवरराइड पर क्लिक करें

एक्सएचटीएमएल

<form>
    <input type="text" required="required" value="" placeholder="test" />
    <button type="submit" name="save">Save</button>
    <button type="submit" name="delete">Delete</button>
</form>

जावास्क्रिप्ट

//wrap our script in an annonymous function so that it can not be affected by other scripts and does not interact with other scripts
//ensures jQuery is the only thing declared as $
(function($){
    var isValid = null;
    var form = $('form');
    var submitButton = form.find('button[type="submit"]')
    var saveButton = submitButton.filter('[name="save"]');
    var deleteButton = submitButton.filter('[name="delete"]');

    //submit form behavior
    var submitForm = function(e){
        console.log('form submit');
        //prevent form from submitting valid or invalid
        e.preventDefault();
        //user clicked and the form was not valid
        if(isValid === false){
            isValid = null;
            return false;
        }
        //user pressed enter, process as if they clicked save instead
        saveButton.trigger('click');
    };

    //override submit button behavior
    var submitClick = function(e){
        //Test form validitiy (HTML5) and store it in a global variable so both functions can use it
        isValid = form[0].checkValidity();
        if(false === isValid){
            //allow the browser's default submit event behavior 
            return true;
        }
        //prevent default behavior
        e.preventDefault();
        //additional processing - $.ajax() etc
        //.........
        alert('Success');
    };

    //override submit form event
    form.submit(submitForm);

    //override submit button click event
    submitButton.click(submitClick);
})(jQuery);

जावास्क्रिप्ट का उपयोग करने के लिए चेतावनी यह है कि आपके कोड में प्रत्येक ब्राउज़र का समर्थन किए बिना त्रुटि संदेशों को प्रदर्शित करने के लिए ब्राउज़र की डिफ़ॉल्ट ऑनक्लिक को सबमिट ईवेंट को आवश्यक रूप से प्रस्तुत करना होगा। अन्यथा यदि क्लिक ईवेंट को event.preventDefault () के साथ ओवरराइड किया जाता है या गलत है तो वह कभी भी ब्राउज़र के सबमिट इवेंट में प्रचारित नहीं करेगा।

इंगित करने वाली बात यह है कि कुछ ब्राउज़रों में उपयोगकर्ता सबमिट करने पर फ़ॉर्म सबमिट को ट्रिगर नहीं करेगा, इसके बजाय यह फ़ॉर्म में पहला सबमिट बटन ट्रिगर करेगा। इसलिए यह दिखाने के लिए एक कंसोल.लॉग ('फॉर्म सबमिट') है कि यह ट्रिगर नहीं करता है।


हम पूरी तरह से जानते हैं कि यह jQuery के बिना किया जा सकता है, लेकिन ओपी ने इस विषय को शीर्षक दिया: "j5 के माध्यम से सबमिट किए बिना html5 फॉर्म सत्यापन को कैसे मजबूर किया जाए", स्पष्ट रूप से सुझाव देते हुए jQuery का उपयोग करना होगा।
vzr

@vzr मेरा उत्तर jQueryस्पष्ट रूप से उपयोग करता है । यह अलग है कि यह कई सबमिट बटन के साथ एचटीएमएल 5 सत्यापन को संसाधित करता है और अमान्य होने पर AJAX फॉर्म जमा करने से रोकता है। saveजब उपयोगकर्ता enterकीबोर्ड पर कुंजी दबाता है तो कार्रवाई के लिए डिफ़ॉल्ट । जो मेरे पोस्टिंग के समय प्रदान किए गए उत्तरों में से कोई भी एक से अधिक सबमिट बटन या ajax सबमिशन को रोकने के लिए एंटर की कैप्चरिंग के लिए समाधान नहीं था।
15

2

आप इसे फॉर्म जमा किए बिना कर सकते हैं।

उदाहरण के लिए, यदि आईडी "खोज" के साथ फॉर्म सबमिट बटन है तो दूसरे फॉर्म में है। आप उस सबमिट बटन पर क्लिक इवेंट को कॉल कर सकते हैं और उसके बाद ev.preventDefault पर कॉल कर सकते हैं। मेरे मामले के लिए मैं फॉर्म ए जमा करने से फॉर्म बी को मान्य करता हूं। ऐशे ही

function validateFormB(ev){ // DOM Event object
  //search is in Form A
  $("#search").click();
  ev.preventDefault();
  //Form B validation from here on
}

2

यह तरीका मेरे लिए अच्छा है:

  1. onSubmitअपने में विशेषता जोड़ें form, returnमूल्य में शामिल करना न भूलें ।

    <form id='frm-contact' method='POST' action='' onSubmit="return contact()">
  2. फ़ंक्शन को परिभाषित करें।

    function contact(params) {
        $.ajax({
            url: 'sendmail.php',
            type: "POST",
            dataType: "json",
            timeout: 5000,
            data: { params:params },
            success: function (data, textStatus, jqXHR) {
                // callback
            },
            error: function(jqXHR, textStatus, errorThrown) {
                console.log(jqXHR.responseText);
            }
        });
    
        return false;
    }

1
$("#form").submit(function() { $("#saveButton").attr("disabled", true); });

सबसे अच्छा जवाब नहीं है लेकिन मेरे लिए काम करता है।


1

मुझे पता है कि यह पहले ही उत्तर दिया जा चुका है, लेकिन मेरे पास एक और संभावित समाधान है।

यदि jquery का उपयोग कर रहे हैं, तो आप यह कर सकते हैं।

पहले jquery पर कुछ एक्सटेंशन बनाएं, ताकि आप आवश्यकतानुसार इनका फिर से उपयोग कर सकें।

$.extend({
    bypassDefaultSubmit: function (formName, newSubmitMethod) {
        $('#'+formName).submit(function (event) {
            newSubmitMethod();
            event.preventDefault();
        }
    }
});

इसके बाद कुछ ऐसा करें जहाँ आप इसका उपयोग करना चाहते हैं।

<script type="text/javascript">
    /*if you want to validate the form on a submit call, 
      and you never want the form to be submitted via
      a normal submit operation, or maybe you want handle it.
    */
    $(function () {
        $.bypassDefaultSubmit('form1', submit);
    });
    function submit(){ 
        //do something, or nothing if you just want the validation
    }

</script>


1

इसने मुझे फॉर्म सत्यापन के साथ मूल HTML 5 त्रुटि संदेशों को प्रदर्शित करने के लिए फ़ॉर्म का काम किया

<button id="btnRegister" class="btn btn-success btn btn-lg" type="submit"> Register </button>



$('#RegForm').on('submit', function () 
{

if (this.checkValidity() == false) 
{

 // if form is not valid show native error messages 

return false;

}
else
{

 // if form is valid , show please wait message and disable the button

 $("#btnRegister").html("<i class='fa fa-spinner fa-spin'></i> Please Wait...");

 $(this).find(':submit').attr('disabled', 'disabled');

}


});

नोट: RegForm है form id

संदर्भ

आशा किसी की मदद करती है।


आपको निष्क्रिय सबमिट बटन सक्षम करने के लिए ईवेंट जोड़ना होगा
talsibony

1

यह एचटीएमएल 5 किसी भी रूप के लिए सत्यापन करने का एक बहुत ही सीधा आगे का तरीका है, जबकि फॉर्म पर अभी भी आधुनिक जेएस नियंत्रण है। केवल चेतावनी सबमिट बटन के अंदर होना चाहिए है <form>

एचटीएमएल

<form id="newUserForm" name="create">
Email<input type="email" name="username" id="username" size="25" required>
Phone<input type="tel" id="phone" name="phone" pattern="(?:\(\d{3}\)|\d{3})[- ]?\d{3}[- ]?\d{4}" size="12" maxlength="12" required>
<input id="submit" type="submit" value="Create Account" >
</form>

js

// bind in ready() function
jQuery( "#submit" ).click( newAcctSubmit );

function newAcctSubmit()
{
  var myForm = jQuery( "#newUserForm" );

  // html 5 is doing the form validation for us,
  // so no need here (but backend will need to still for security)
  if ( ! myForm[0].checkValidity() )
  {
    // bonk! failed to validate, so return true which lets the
    // browser show native validation messages to the user
    return true;
  }

  // post form with jQuery or whatever you want to do with a valid form!
  var formVars = myForm.serialize();
  etc...
}

0

मुझे लगता है कि सबसे अच्छा तरीका

jQuery सत्यापन का उपयोग किया जाएगा प्लगइन जो फार्म सत्यापन के लिए सर्वोत्तम अभ्यास का उपयोग करता है और इसमें अच्छा ब्राउज़र समर्थन भी है। इसलिए आपको ब्राउज़र संगतता समस्याओं के बारे में चिंता करने की आवश्यकता नहीं है।

और हम jQuery सत्यापन मान्य () फ़ंक्शन का उपयोग कर सकते हैं जो यह जांचता है कि चयनित फ़ॉर्म वैध है या नहीं और सभी चयनित तत्व फ़ॉर्म सबमिट किए बिना मान्य हैं या नहीं।

<form id="myform">
   <input type="text" name="name" required>
   <br>
   <button type="button">Validate!</button>
</form>
<script>
  var form = $( "#myform" );
  form.validate();
  $( "button" ).click(function() {
    console.log( "Valid: " + form.valid() );
  });
</script>

0

प्रश्न के अनुसार html5 वैधता को पहले jQuery का उपयोग करने में सक्षम होना चाहिए और अधिकांश उत्तर में ऐसा नहीं हो रहा है और इसका कारण निम्नलिखित है:

HTML5 फ़ॉर्म के डिफ़ॉल्ट फ़ंक्शन का उपयोग करते समय मान्य करते हुए

checkValidity();// returns true/false

हमें यह समझने की आवश्यकता है कि इस तरह का चयन करते समय jQuery ऑब्जेक्ट ऑब्जेक्ट सरणी देता है

$("#myForm")

इसलिए, आपको चेकवैलिडिटी () फ़ंक्शन कार्य करने के लिए पहला इंडेक्स निर्दिष्ट करने की आवश्यकता है

$('#myForm')[0].checkValidity()

यहाँ पूरा समाधान है:

<button type="button" name="button" onclick="saveData()">Save</button>

function saveData()
{
    if($('#myForm')[0].checkValidity()){
        $.ajax({
          type: "POST",
          url: "save.php",
          data: data,
          success: function(resp){console.log("Response: "+resp);}
        });
    }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.