2016-11-25 6 views
5

मैं इसी प्रकार अनेक रूप:एकाधिक प्रपत्र गतिशील क्षेत्र जावास्क्रिप्ट सत्यापन

<?php for ($i = 0; $i > $n; $i++) { ?> // n is no. of value (no limit) 
    <form> 
     <input name="<?php echo $i; ?>venue" type="text"> 
     <input name="roster" type="text"> 
     <input type="submit" name="btn_venue"> 

    </form> 
<?php } ?> 
    <form> 
     <input name="hospitality" type="text"> 
     <input name="template" type="text"> 
     <input type="submit" name="btn_hospitality"> 
    </form> 
    ... 
    ... 
    <form> 
     <input name="element" type="text"> 
     <input name="alignment" type="text"> 
     <input type="submit" name="btn_xyz"> 
    </form> 

मैं मान्य चाहते हैं (क्षेत्र को खाली नहीं होना चाहिए) तो सभी के रूप में, मैं मान्यता कैसे उपयोग कर सकते हैं?

मैं jQuery सत्यापन करने की कोशिश की:

<script> 
    $('document').ready(function() { 
     $('form').each(function (key, form) { 
      $(form).validate({ 
       rules: { 
        hospitality: { 
         required: true 
        }, 
        //... 
        //... 
        alignment: { 
         required: true 
        } 
      }); 
     }); 
    }); 
</script> 

मैं स्थिर नाम क्षेत्र सत्यापन का प्रबंधन है, लेकिन मैं गतिशील venue नाम के बारे में विचार नहीं कर validation.Can किसी को भी मेरी मदद?

यदि केवल एक ही फॉर्म आसानी से बनाए रखता है लेकिन गतिशील रूप से एकाधिक रूप सबमिट करता है तो सत्यापित करने के लिए मान्य करें।

एक समय में केवल एक ही फॉर्म सबमिट करते हैं लेकिन विशेष फॉर्म फ़ील्ड मान्य करता है कि यह कैसे संभव है?

+1

आप फ़ॉर्म सबमिट कैसे कर रहे हैं? आपके पास सबमिट बटन नहीं हैं ..? –

+0

@StefanMichelangeloMihajlovic अद्यतन कोड कृपया इसे जांचें। –

+0

आवश्यक इनपुट में "आवश्यक" विशेषता जोड़ें, HTML5 समर्थन वाले ब्राउज़र स्वचालित रूप से इसे सत्यापित करेंगे। यदि आप कस्टम त्रुटि संदेश चाहते हैं तो आप Parsley.js का उपयोग कर सकते हैं – rogeriolino

उत्तर

2

इसे आजमाएं। यह प्रत्येक रूप के माध्यम से और उनमें से प्रत्येक के लिए प्रत्येक इनपुट (प्रकार के पाठ) के माध्यम से जाता है और उनमें से प्रत्येक के लिए एक आवश्यक नियम बनाता है। फिर वैध कार्य करने के लिए गतिशील रूप से निर्मित नियमों को खिलाता है।

$('document').ready(function() { 
    $('form').each(function (key, form) { 
     // build the rules object dynamically 
     var rules = {}; 
     // loop through each input in the form 
     $(form).find('input[type="text"]').each(function(idx, obj) { 
      // make a rule for this input 
      rules[obj.name] = {"required": true}; 
     }); 
     $(form).validate({ 
      "rules": rules 
     }); 
    }); 
}); 
1

ओके यह सुनिश्चित करने के लिए सबसे साफ तरीका नहीं है, लेकिन यह मेरा दिमाग पार करने वाला पहला तरीका है। सबसे पहले, अपने एचटीएमएल को संपादित करें, इसलिए फॉर्म id="form$i", इनपुट में id="input$i", है और सबमिट id="$i" है। इसके अलावा class="validate"

<?php for ($i = 0; $i > $n; $i++) { ?> // n is no. of value (no limit) 
    <form id="form<?php echo $i; ?>">//so id="form2" for example 
     <input id="input<?php echo $i; ?>" name="<?php echo i; ?>venue" type="text">// id="input2" 
     <input name="roster" type="text"> 
     <input id="<?php echo $i; ?>" class="validate" type="submit" name="btn_venue">//id="2" 
    </form> 
<?php } ?> 

JQuery प्रस्तुत करने के लिए जो काम करना चाहिए वर्ग जोड़ने के लिए, मैं कोड में प्रत्येक पंक्ति

<script> 
    $(function() { 
     $(".validate").click(function() { //this is call for each click button with class validate 
      var id = $(this).attr('id');//getting id of the clicked element which is $i 
      var formid = 'form' + id;//creating new var formid which will target formid (for example: in first loop $i=1, so id=1, and formid=form1) 
      var input = 'input' + id;//creating input which value will be input$i 
      $('#' + formid).on('submit', function (e) {//on form submit validate function 
       if ($(#input).value == '') { 
        return false; 
       } else { 
        return true; 
       } 
      }); 
     }); 
    }); 
</script> 

आशा है कि आप तर्क को समझने का तरीका बताएंगे, यह मैं गलती की कहीं तो विशेष ध्यान दें हो सकता है ..

संबंधित मुद्दे