2012-08-11 9 views
5

$ ('चयनकर्ता') के लिए "सबमिट" प्रकार के बजाय "बटन" प्रकार के साथ JQuery सत्यापन। सत्यापन() "बटन" प्रकार से "इनपुट" प्रकार बटन के लिए और अधिक बनाया गया प्रतीत होता है। मैं इसे फॉर्म के भीतर बटन प्रकार के साथ कैसे काम करूंगा?एक फॉर्म

@using(Html.BeginForm(new {id="TheForm"})) 
{ 
    // code here 
    <input id="TheButton" type="button"> 
} 

JQuery:

$(document).ready(function() { 
     $("#TheForm").validate({ 
      rules: { 
       "AuditDoc.Title": { 
         required: true 
        } 
      } 
     }); 
     $("#TheButton").click(function() { 

     }); 
}); 

इस मूल विचार का उपयोग करना, मैं jQuery सत्यापित करें कि कैसे मिलेगा बल्कि एक प्रकार सबमिट बटन की तुलना में एक बटन के साथ काम? मैंने ऐसे उदाहरण देखे हैं जहां सबमिट प्रकार का उपयोग करते हुए नियमों को पूरा नहीं करते हैं, लेकिन JQuery स्वचालित रूप से त्रुटि संदेश प्रदर्शित करता है, लेकिन यह बटन प्रकार के साथ काम नहीं करता है। मैं किसी भी सलाह की सराहना करता हूँ!

+0

उपयोग यह एक बटन क्लिक $ ("# TheForm") को मान्य(); – Thulasiram

उत्तर

4
$(document).ready(function() { 
     $("#TheForm").validate({ 
      rules: { 
       "AuditDoc.Title": { 
        required: true 
       } 
      } 
     }); 

     $("#TheButton").click(function() { 
      if (!$("#TheForm").validate()) { // Not Valid 
       return false; 
      } else { 
       $("#TheForm").submit() 
      } 
     }); 

     $('#btnReset').live('click', function (e) { 
      //var $validateObj = $('#formId'); 
      //Or 
      var $validateObj = $(this).parents('form'); 

      $validateObj.find("[data-valmsg-summary=true]").removeClass("validation-summary-errors").addClass("validation-summary-valid").find("ul").empty(); 
      $validateObj.find("[data-valmsg-replace]").removeClass("field-validation-error").addClass("field-validation-valid").empty(); 
     }); 
    }); 
+0

बस फॉर्म सबमिट करें - बाकी बाकी है। – Ryley

+1

समस्या यह है कि मान्य "प्रकार" प्रकार के साथ स्वचालित रूप से "बटन" प्रकार के साथ काम नहीं करता है। आपको सादे पुराने बटनों के साथ "बाकी सब कुछ मान्य" व्यवसाय नहीं मिलता है। ऐसा लगता है कि "सबमिट" प्रकार बटन के लिए बनाया गया है। – TheDude

+0

@TheDude - मैं समझता हूं, मेरा मुद्दा यह था कि वैधता पहले से ही फ़ॉर्म के सबमिटल में लगाई गई है, इसलिए आपके बटन को करने के लिए सबसे तार्किक बात है ... फॉर्म सबमिट करें। – Ryley

4

एक hackish तरीका हो सकता है:

$("#TheButton").click(function() { 
    $("#TheForm").submit() 
}); 
+1

यह हैकिश भी नहीं है - बिंदु यह है कि आप फ़ॉर्म जमा करना चाहते हैं ... jQuery मान्य बाकी करता है। मैं अधिकांश अन्य उत्तरों को हैकी कहूंगा - काम करने के लिए वैसे भी काम करना होगा :) – Ryley

+0

@TheDude - देखो कि वह वास्तव में क्या कर रहा है - वह बटन सबमिट करने के लिए फॉर्म सबमिट कर रहा है। यह अनुकरण कर रहा है कि एक सबमिट बटन बहुत सरलता से क्या करता है। – Ryley

+0

@Ryley - यह नीचे आता है कि $। प्रमाणीकरण सबमिमित प्रकार बटन के लिए बनाया गया है, बटन प्रकार नहीं। जब मैं बटन प्रकार का उपयोग करने का प्रयास करता हूं, तो। वैधता में लात नहीं है। मैंने इसे सबमिट प्रकार बटन के लिए उपयोग करने का प्रयास किया और यह इरादे के रूप में काम करता है। दुर्भाग्यवश, हमारे आवेदन को बटन प्रकार का उपयोग करने में सक्षम होना चाहिए। – TheDude

2

यह एक सामान्य इनपुट के साथ बहुत ज्यादा एक ही रूप में यह होगा काम करता है को छोड़कर यह विधि प्रस्तुत समर्थन नहीं करता। preventDefault बस पृष्ठ को इसके डिफ़ॉल्ट अनुरोध करने से रोकता है। ।

$("#TheButton").click(function(event) { 
    event.preventDefault(); //or return false 
    getData(); 
}); 
+0

मैं इसे आज़मा दूंगा ... यद्यपि एक अपवित्र देना, मानना ​​है कि यह काम करेगा :) –

5
$(document).ready(function(){ 

    $("#myform").validate(); 
    $("#byuttion").click(function() { 

     if($("#myform").valid()) 
     { 
      $("#myform").submit(); 
     } 
     else 
     { 
      return false; 
     } 

     }); 

}); 
+1

धन्यवाद साथी। हमें पहले फॉर्म को सत्यापित करने की आवश्यकता होगी और फिर जांचें। समस्या सुलझ गयी। –

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