jquery

2009-03-10 18 views
5

के साथ पूरे फॉर्म के सबमिट को अक्षम/सक्षम करें जब मेरा फॉर्म मान्य नहीं होता है, तो मैं फ़ॉर्म के सबमिट फ़ंक्शन को अक्षम करना चाहता हूं। मैं सबमिट बटन को अक्षम करके ऐसा कर सकता हूं, लेकिन यह एंटर कुंजी अनचेक छोड़ देगा।
मैं .submit सेट कर सकता हूं (झूठी वापसी); लेकिन फिर मैं इसे बाद में फिर से सक्षम नहीं कर सकता।jquery

कोई सुझाव?

उत्तर

12

बस का सरलीकरण पिम का (जेम्स योगदान ऊपर खींचने के लिए संपादित):


$('#form').submit(formValidated); 
0

सबमिट फ़ंक्शन को सीधे कॉल करने के बजाय एक मध्यस्थ कार्य को कॉल करें और वहां एक चेक करें।

यानी

var isSubmitable = false; 

function submitForm() { 
    if(isSubmitable) { 
     myform.submit(); 
    } 
} 
5

कैसे प्रस्तुत विधि के अंदर जांच करने के बारे में:

$('#form').submit (function() { 
if(formValidated()) 
    return true; 
return false; 
}); 
+0

वह, सरल और काम कर रहा :) –

+1

बस एक नोट जो आप शायद पहले ही जानते थे: सर्वर-साइड पर अपनी मान्यताओं को भी न भूलें, हालांकि जावास्क्रिप्ट अक्षम होने से इसे बाईपास कर दिया जाएगा। – lpfavreau

0

एक अन्य संभावित समाधान:।

$ ('# प्रपत्र') परिवर्तन (function() { (isValid ($ ('# form'))? $ ('# SubmitBtn')। Attr ('disabled', false): $ ('# submitBtn')। Attr ('disabled', true) }) ;

बेशक, isValid() जांचता है कि आपके सभी $ ('# form') तत्व आपके सत्यापन नियमों का अनुपालन करते हैं। इस तरह मैं इसे करूँगा।

7

मैं निम्नलिखित है, जो काम किया (अक्षम बटन सबमिट करें और फार्म पेश करें) था:

var condition = true; //check whatever you like 
if(condition) 
    $('input[type=submit]', this).attr('disabled', 'disabled'); 
    $('form').bind('submit',function(e){e.preventDefault();}); 
}else{ 
    $('input[type=submit]', this).removeAttr('disabled', 'disabled'); 
    $('form').unbind('submit'); 
} 
1

बस एक निक के मूल जवाब का सरलीकरण:

$('#form').submit(formValidated);