2012-08-11 16 views
5

$ ('selector') validation(), "button" türü için "input" türü düğmesi için daha fazla oluşturulmuş gibi görünüyor. Formda bir düğme türü ile nasıl çalışabilirim?JQuery validation "button" türü yerine "submit" türü için bir form için

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

JQuery: bu temel prensipten hareket ederek

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

     }); 
}); 

, nasıl yerine bir tip Gönder düğmesini daha bir düğme ile çalışan jquery validate olsun ki? JQuery'nin kurallar gönderim türünü kullanarak karşılanmadığı zaman hata mesajlarını otomatik olarak görüntülediği örnekleri gördüm, ancak düğme türü ile çalışmıyor gibi görünüyor. Herhangi bir tavsiyeye minnettar olurum!

+0

kullanımı bu bir düğme tıklama $ ("# theform") doğrulamak(); – Thulasiram

cevap

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

sadece formu gönderin - geçerliliği geri kalanı yok. – Ryley

+1

Sorun, doğrulamanın "gönder" türünde olduğu gibi otomatik olarak "düğme" ile çalışmadığıdır. Tüm bunları, eski "eski düğmeleri" ile "geri kalanını doğrular" işini almazsınız. "Gönder" tipi düğmeler için oluşturulmuş gibi görünüyor. – TheDude

+0

@TheDude - Anlıyorum, benim amacım, validate'nin formun gönderilmesine zaten bağlı olduğudur, bu yüzden düğmenizi yapmak için en mantıklı şey ... formu gönderin. – Ryley

4

Tek hackish yolu olabilir: Bu normal bir girişi olan hemen hemen aynı vereceği gibi çalışır

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

Bu bile hackish değil - konu formu göndermek istediğiniz ... jQuery validate gerisini yapar. Diğer cevapların çoğunu hacky olarak adlandırırdım - iş doğrulaması yapmak zaten işe yarardı :) – Ryley

+0

@TheDude - Gerçekten ne yaptığına bak - düğmeyi tıklatarak formu gönder. Gönderme düğmesinin ne yaptığını çok basit bir şekilde uyarıyor. – Ryley

+0

@Ryley - Aşağıya inen, $ .validation, BUTTON tipi değil, SUBMIT tipi düğmeler için oluşturuldu. BUTTON türünü kullanmaya çalıştığımda, .validation başlatılmaz. SUBMIT türü düğmeler için kullanmayı denedim ve amaçlandığı gibi çalışır. Maalesef, uygulamanızın BUTTON tipini kullanabilmesi gerekiyor. – TheDude

2

o teslim yöntemi desteklemiyor hariç. preventDefault, sayfanın varsayılan isteğini yapmasını durdurur. .

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

Bunu denemeliyim ... ama bir vesile vererek, işe yaramayacağına inanıyor :) –

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

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

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

     }); 

}); 
+1

Teşekkürler dostum. Formu onaylamalı ve kontrol etmeliyiz. Sorun çözüldü. –

İlgili konular