এইচটিএমএল 5 ফর্ম বৈধতা jQuery এর মাধ্যমে জমা না দিয়ে কীভাবে বাধ্য করা যায়


286

আমার অ্যাপটিতে এই ফর্মটি রয়েছে এবং আমি এজেএক্সের মাধ্যমে এটি জমা দেব, তবে আমি ক্লায়েন্ট-পাশের বৈধতার জন্য এইচটিএমএল 5 ব্যবহার করতে চাই। সুতরাং আমি সম্ভবত jQuery মাধ্যমে, ফর্ম বৈধতা জোর করতে সক্ষম হতে চাই।

আমি ফর্মটি জমা না দিয়ে বৈধতাটি ট্রিগার করতে চাই। এটা কি সম্ভব?


আপনি কি ফর্মটি বৈধ করতে চান তা নির্দিষ্ট করতে পারেন? বৈধতা ট্রিগার কি? আপনি কি প্রতিটি ক্ষেত্রকে বৈধতা দিতে চান যখন ব্যবহারকারীর প্রকার, প্রবেশ ক্ষেত্র / প্রবেশের ক্ষেত্র, মান পরিবর্তন হয়?
পিটার পাজচল 8'12

6
আমি যে ভালো কিছু কি সম্ভব হতে চাই। $ ( "# My_form") triggerHtml5Validation ()
razenha

এই পৃষ্ঠাটি লিঙ্কটি
ড্যান ব্রে

আপনি 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()যা হ'ল নেটিভ ব্রাউজারের ত্রুটি বার্তাগুলি ট্রিগার করে, জমা বোতামটির ক্লিক না করে। আপনার যদি এমন ইভেন্ট শ্রোতা থাকে যা জমা দেওয়া বোতামটির ক্লিকটি শোনায়, আপনি যখন এটি trigger $ myForm.find (': સબમિટ') করেন ক্লিক করুন () click ক্লিক করুন, যা নিজেই ট্রিগার করবে এবং অসীম পুনরাবৃত্তি ঘটবে।
খারাপ অনুরোধ

30

আমার পক্ষে কাজ করার জন্য আমি এই সমাধানটি খুঁজে পেয়েছি। এইভাবে একটি জাভাস্ক্রিপ্ট ফাংশন কল করুন:

action="javascript:myFunction();"

তারপরে আপনার এইচটিএমএল 5 বৈধতা আছে ... সত্যই সহজ :-)


3
এটি আমার পক্ষেও কাজ করেছিল এবং আমি মনে করি এটিই সেরা উত্তর। আমি সেট action="javascript:0"উপর <form>ও বাঁধা clickএর ইভেন্টে <button>করতে MyFunction()এবং সমস্ত কাজ করে মহান। আমি সমস্ত জেএসকে এইচটিএমএল থেকে দূরে রাখি। MyFunctionতারপরে form.checkValidity()চালিয়ে যেতে পরীক্ষা করতে পারেন ।
ওরাড

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()

থেকে: এইচটিএমএল 5 ফর্ম বৈধতা


4
reportValidityহয় শুধুমাত্র সমর্থিত ক্রোম 40.0 দ্বারা
এম এম

এটা কফি স্ক্রিপ্ট।
অ্যামফেটামাইচাইন

1
রিপোর্টভালিডিটি এখন ফায়ারফক্স সমর্থন করেছে সংস্করণ 49
জাস্টিন

আমি এই অংশের মতো $("form")[0].reportValidity()। আমার প্রয়োজন যে ক্ষেত্রে বৈধতা চেক ব্যর্থ হয়।
fsevenm

গ্রেট! ধন্যবাদ!
stefo91

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>একক <button>উপাদান থাকে , একবার বরখাস্ত হয়ে যায়, যা <button>স্বয়ংক্রিয়ভাবে ফর্মকে সরিয়ে ফেলবে। আপনি যদি এজেএক্সের সাথে খেলেন তবে আপনার সম্ভবত ডিফল্ট ক্রিয়াটি রোধ করা দরকার। তবে একটি ধরা আছে: আপনি যদি কেবল এটি করেন তবে আপনি বেসিক HTML5 বৈধতাও আটকাতে পারবেন। সুতরাং, ফর্মটি বৈধ হলেই সেই বোতামটিতে ডিফল্টগুলি রোধ করা ভাল কল। অন্যথায়, এইচটিএমএল 5 বৈধতা আপনাকে জমা দেওয়ার হাত থেকে রক্ষা করবে। 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 বৈধকরণ" এবং এইচটিএমএল ফর্মের বৈধতা সম্পর্কে কথা বলছেন।

এইচটিএমএল 5 এর একটি ফর্ম বৈধকরণের জন্য অন্তর্নির্মিত বিকল্প রয়েছে। যেমন কোনও ক্ষেত্রে "প্রয়োজনীয়" বৈশিষ্ট্যটি ব্যবহার করা (যা ব্রাউজার প্রয়োগের উপর ভিত্তি করে) জাভাস্ক্রিপ্ট / jquery ব্যবহার না করে ফর্ম জমা দিতে ব্যর্থ হতে পারে।

জাভাস্ক্রিপ্ট / jquery দিয়ে আপনি এই জাতীয় কিছু করতে পারেন

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

2
আমি ফর্মটি জমা না দিয়ে বৈধতাটি ট্রিগার করতে চাই।
রাজেনহা

আপনার আপডেট অনুসারে - আমি এখনও মনে করি এটি সঠিক সমাধান। আপনি কীভাবে triggerHtml5Validation()ফাংশনটি ট্রিগার করতে চান তা নির্দিষ্ট করে দেননি । উপরের কোডটি আপনার ফর্মটিতে ইভেন্ট জমা দেবে; জমা দেওয়ার সময় আপনি ইভেন্টটি বাধিয়ে ফর্মটি বৈধতা দিন। আপনি যদি কখনও ফর্মটি জমা দিতে চান না, কেবল return false;এবং জমাটি কখনই ঘটে না।
পিটার পাজচল

7
return (valid) ? true : false=== return valid। :)
ডেভি কোসিসিয়ানস্কি ভিডাল

1
ওফস, আমি @ ডেভি +1 করেছি কারণ আমি প্রথমে ঠিক একই জিনিসটি ভাবছিলাম। তবে এটি আসলে একই নয়, যেমন return validনাল / অপরিজ্ঞাত মানগুলির জন্য মিথ্যা ফিরিয়ে দেয় না। তবে এটি কোনও ব্যাপার নয়, উত্তরটি যেভাবেই হোক সিউডো-কোড ছিল, মূল কথাটি: ফর্মটি জমা না দেওয়ার জন্য মিথ্যা রিটার্ন ব্যবহার করুন
T


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ফাংশনে (বা আপনি যেটিকে কল করুন) এজেএক্স ব্যবহার করে আপনি ফর্মটি জমা দিতে পারেন। 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

আমার বরং জটিল পরিস্থিতি ছিল, যেখানে বিভিন্ন জিনিস প্রক্রিয়া করার জন্য আমার একাধিক জমা বোতামের প্রয়োজন ছিল। উদাহরণস্বরূপ, সংরক্ষণ করুন এবং মুছুন।

ভিত্তিটি ছিল যে এটিও আপত্তিহীন ছিল, তাই আমি কেবল এটি একটি সাধারণ বোতাম তৈরি করতে পারিনি। তবে এইচটিএমএল 5 বৈধতাও ব্যবহার করতে চেয়েছিলেন।

পাশাপাশি ব্যবহারকারী যদি প্রত্যাশিত ডিফল্ট জমাটি ট্রিগার করতে প্রবেশপত্রে চাপ দেওয়া হয় তবে সাবমিশনের ইভেন্টটি ওভাররাইড হয়ে যায়; এই উদাহরণে সংরক্ষণ করুন।

জাভাস্ক্রিপ্টের সাথে / ছাড়াই এবং এইচটিএমএল 5 বৈধতা সহ, জমা দিন এবং ক্লিক করুন ইভেন্ট উভয়ের সাথেই কাজ করার ফর্মটির প্রসেসিংয়ের প্রচেষ্টা এখানে রয়েছে।

jsFiddle ডেমো - জমা দিয়ে ওভাররাইড ক্লিক করে এইচটিএমএল 5 বৈধতা

XHTML

<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);

জাভাস্ক্রিপ্ট ব্যবহার করার সতর্কতাটি হ'ল ব্রাউজারের ডিফল্ট অন্লিক আপনার কোডটিতে প্রতিটি ব্রাউজারকে সমর্থন না করে ত্রুটি বার্তাগুলি প্রদর্শনের জন্য ঘটতে হবে এমন ঘটনাটি জমা দিতে হবে। অন্যথায় যদি ক্লিক ইভেন্টটি ইভেন্ট.প্রিভেন্টডাফল্ট () এর সাথে ওভাররাইড করা হয় বা মিথ্যা প্রত্যাবর্তন হয় তবে এটি কখনই ব্রাউজারের জমা ইভেন্টে প্রচার করে না।

মূল বিষয়টি হ'ল কিছু ব্রাউজারে যখন ব্যবহারকারীরা টিপে প্রবেশ করে তখন ফর্ম জমাটি ট্রিগার করবে না, পরিবর্তে এটি ফর্মের প্রথম জমা বোতামটি ট্রিগার করবে। সুতরাং এটির ট্রিগার হয় না তা দেখানোর জন্য একটি কনসোল.লগ রয়েছে ('ফর্ম জমা দিন')।


আমরা প্রাথমিকভাবে সচেতন যে এটি jQuery ছাড়াই করা যেতে পারে, তবে ওপিক এই বিষয়টির শিরোনাম: "কীভাবে কোনও এইচটিএমএল 5 ফর্ম বৈধতা জিকুয়ারির মাধ্যমে জমা না দিয়ে বাধ্য করবেন", স্পষ্টভাবে পরামর্শ দিয়েছিলেন যে jQuery ব্যবহার করতে হবে।
ভিজার

@vzr আমার উত্তরটি jQueryস্পষ্টভাবে ব্যবহার করে । এটি পৃথক যে এটি একাধিক জমা বোতামগুলির সাথে HTML5 বৈধকরণ প্রক্রিয়াকরণ পরিচালনা করে এবং অবৈধ হলে AJAX ফর্ম জমা আটকাবে। saveব্যবহারকারী enterকীবোর্ডের কী টিপলে ক্রিয়াকে ডিফল্ট করা । যা আমার পোস্ট করার সময় প্রদত্ত উত্তরের কোনওটিই একাধিক সাবমিট বাটন বা এজ্যাক্স জমা আটকাতে প্রবেশ কী ক্যাপচারের সমাধান ছিল না।
fyrye

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

আমি জানি এটি ইতিমধ্যে উত্তর দেওয়া হয়েছে, তবে আমার আরও একটি সম্ভাব্য সমাধান রয়েছে।

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

এই ফর্মটি বৈধতা সহ নেটিভ এইচটিএমএল 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 বৈধতা কার্যকর করার এটি বেশ সহজ সরল পথ is একমাত্র সাবধানতা হ'ল সাবমিট বাটনটি অবশ্যই এর ভিতরে থাকা উচিত <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

প্রশ্ন অনুসারে এইচটিএমএল 5 এর বৈধতা প্রথমে jQuery ব্যবহার করে বৈধ হওয়া উচিত এবং বেশিরভাগ উত্তরে এটি ঘটছে না এবং এর কারণ নিম্নরূপ:

এইচটিএমএল 5 ফর্মের ডিফল্ট ফাংশন ব্যবহার করে যাচাই করার সময়

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);}
        });
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.