2011-12-26 22 views
7

मैं प्रपत्र निम्नलिखित है:सत्यापन jQuery के बाद प्रपत्र सबमिट

<form id="form" action="comments.php" method="post"> 
    <ul> 
    <li><div class="formbox_titles">Name</div><input type="text" name="name" class="required comm_input" /></li> 
    <li><div class="formbox_titles">Email</div><input type="text" name="email" class="required comm_input"/></li> 
    <li><div class="formbox_titles">Message</div><textarea name="message" class="required comm_text"></textarea></li> 
    <li><input type="submit" value="Submit"></li> 
    </ul> 
</form> 

और फ़ॉर्म प्रविष्टि के लिए JQuery निम्नलिखित:

target: '#preview', 
    success: function() { 
    $('#formbox').slideUp('fast'); 
} 

अब समस्या मैं भी है कि है फ़ॉर्म सत्यापन JQuery कोड

$().ready(function() { 
    // validate comment form 
    $("#form").validate({ 
    }); 
}); 

उन दोनों महान काम करते हैं और प्रपत्र पॉप-अप है कि सभी तीन क्षेत्रों नहीं कर सकते खाली हो लेकिन फार्म के अंदर तारीख करता है वैसे भी डेटाबेस में जमा किया गया है। मैं फॉर्म सत्यापन http://bassistance.de/jquery-plugins/jquery-plugin-validation/ के लिए निम्नलिखित कोड का उपयोग कर रहा हूं तो सवाल यह है कि दूसरे के अंदर पहली jquery जोड़ने के लिए, तो आवश्यक फ़ील्ड भरने के बाद पहले निष्पादित किया जाएगा?

आशा है कि कोई मदद करेगा। धन्यवाद।

उत्तर

3

मैं अपने मान्यता प्लगइन के बारे में कुछ भी पता नहीं है, लेकिन आम तौर पर यू कोड

<script> 

    $("form").submit(function() { 
     if (validationIsTrue()) { 
     return true; 
     } 
     else { 
     return false; 
     } 
    }); 
</script> 

आप अपने मान्यता बनाने के लिए और फिर सही/गलत लौट प्रपत्र के समारोह प्रस्तुत करना के इस शांति इस्तेमाल कर सकते हैं। प्लगइन एक bool मूल्य वापस नहीं करता है, तो आप कुछ इस तरह की कोशिश कर सकते हैं:

$("form").submit(function() { 
    return $(this).validate({ .... }); 
}); 
8

अपने उदाहरण से, मैं अपने पृष्ठ के नियंत्रण प्रवाह के बारे में स्पष्ट नहीं कर रहा हूँ, फिर भी, मैं यह सोचते हैं रहा हूँ आप submit() विधि बुला रहे हैं कहीं। फ़ॉर्म को सत्यापित करने के बाद और इसे सबमिट करने से पहले, valid() विधि के साथ इसकी सत्यापन जांचें। आपका कोड कुछ इस तरह दिखना चाहिए:

$("#form").validate(); 
if ($('#form').valid()) 
    $('#form').submit(); 
2

जब आप कहते हैं कि "फ़ॉर्म के अंदर तारीख प्रस्तुत किया जाता है" कि कोई मतलब नहीं मेरे लिए क्योंकि आपके कोड के टुकड़े मैं "तिथि" कहा जाता है कुछ भी नहीं देख में बनाता है।

मैं .validate() बड़े पैमाने पर प्लगइन का उपयोग किया है ... क्या मैं मदद कर सकते हैं आप बता सकते हैं सत्यापित करें आप उपयोग कर रहे प्लगइन एक submitHandler समारोह है कि आप उपयोग कर सकते हैं वह यह है कि ...

// validate comment form 
$("#form").validate({ 
submitHandler : function(form) { 
    //do something here 
    form.submit(); 
} 
}); 

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

कि के साथ, मुझे यकीन है कि के लिए आपको बता सकता है समस्या आप का वर्णन कर रहे हैं इंगित करने के लिए कोई बात नहीं है जानकारी के साथ प्रदान की है कि। अधिक से अधिक बेहतर जानकारी प्रदान करने से हमें पता चल जाएगा कि क्या गलत है।

9

आप मैन्युअल रूप से प्रपत्र को जमा करना चाहते हैं, तो आप jQuery बाध्य घटना को बायपास करने के लिए है। आप इन तरीकों में से किसी में कर सकते हैं:

$('#form_id')[0].submit(); 

या

$('#form_id').get(0).submit(); 

[0] या हो (0) आप jQuery वस्तु के स्थान पर डोम वस्तु देता है।

+1

उनका कहना है कि बाहर के लिए धन्यवाद ...इस के लिए खोज रहा था क्योंकि मेरे पास फॉर्म जमा करने के लिए एक घटना है, लेकिन वास्तव में फॉर्म भेजने से पहले मुझे एक एजेक्स अनुरोध करना है और यदि स्थिति सच है तो मैं फॉर्म जमा करता हूं और वहां मुझे बाईपास की आवश्यकता होती है। +1 –

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