Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 25th, 2012  |  syntax: None  |  size: 3.50 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. MVC3 validation failing when trying to add ajax post function
  2. <div id="window">
  3. @using (Html.RequiredFieldsMessage()){}
  4. @using (Html.BeginForm("","",FormMethod.Post,new{id="card-payment"}))
  5. {
  6.     @Html.ValidationSummary(true, "Please fix the errors below.")
  7.     <div class="inputForm no-border">
  8.         <div class="fr">
  9.             @Html.LabelFor(model => model.DpsPaymentModel.CardHolderName)
  10.             @Html.EditorFor(model => model.DpsPaymentModel.CardHolderName)
  11.             @Html.ValidationStyledMessageFor(model => model.DpsPaymentModel.CardHolderName, false)
  12.           </div>
  13.         <div class="fr">
  14.             @Html.LabelFor(model => model.DpsPaymentModel.CardNumber)
  15.             @Html.EditorFor(model => model.DpsPaymentModel.CardNumber)
  16.             @Html.ValidationStyledMessageFor(model => model.DpsPaymentModel.CardNumber, false)
  17.         </div>
  18.         <div class="fr">
  19.             @Html.LabelFor(model => model.DpsPaymentModel.DateExpiry)
  20.             @Html.EditorFor(model => model.DpsPaymentModel.DateExpiry)
  21.             @Html.ValidationStyledMessageFor(model => model.DpsPaymentModel.DateExpiry, false)
  22.         </div>
  23.         <div class="fr">
  24.             @Html.LabelFor(model => model.DpsPaymentModel.Cvc2)
  25.             @Html.EditorFor(model => model.DpsPaymentModel.Cvc2)
  26.             @Html.ValidationStyledMessageFor(model => model.DpsPaymentModel.Cvc2, false)
  27.         </div>
  28.         <div class="fr">
  29.             @Html.LabelFor(model => model.DpsPaymentModel.Amount)
  30.             @Html.EditorFor(model => model.DpsPaymentModel.Amount)
  31.             @Html.ValidationStyledMessageFor(model => model.DpsPaymentModel.Amount, false)
  32.         </div>
  33.         <div class="fr">
  34.             <button type="submit" id="process-payment">Submit</button>
  35.         </div>
  36.     </div>
  37.  
  38. }
  39. </div>
  40.        
  41. $("#process-payment").click(function () {
  42.             event.preventDefault();
  43.             var form = $("#card-payment");
  44.             $.validator.unobtrusive.parse(form);
  45.             if (form.validate()) {
  46.                 console.log("valid");
  47.                 $.ajax({
  48.                     url: '/payment/processcardpayment',
  49.                     type: "POST",
  50.                     data: form.serialize(),
  51.                     success: function (data) {
  52.                         console.log(data);
  53.  
  54.                     },
  55.                     error: function (jqXhr, textStatus, errorThrown) {
  56.                         alert("Error '" + jqXhr.status + "' (textStatus: '" + textStatus + "', errorThrown: '" + errorThrown + "')");
  57.                     },
  58.                     complete: function () {
  59.                         //       $("#ProgressDialog").dialog("close");
  60.                     }
  61.                 });
  62.             } else {
  63.                 console.log("invalid");
  64.             }
  65.  
  66.         });
  67.        
  68. $("#process-payment").click(function (evt) {
  69.     evt.preventDefault();
  70.     ...
  71. });
  72.        
  73. $('#card-payment').submit(function(evt) {
  74.     evt.preventDefault();
  75.     var form = $(this);
  76.     if (form.valid()) {
  77.         $.ajax({
  78.             url: this.action,
  79.             type: this.method,
  80.             data: form.serialize(),
  81.             success: function (result) {
  82.                 console.log(result);
  83.             },
  84.             error: function (jqXhr, textStatus, errorThrown) {
  85.                 alert("Error '" + jqXhr.status + "' (textStatus: '" + textStatus + "', errorThrown: '" + errorThrown + "')");
  86.             },
  87.             complete: function () {
  88.                 // $("#ProgressDialog").dialog("close");
  89.             }
  90.         });
  91.     } else {
  92.         console.log("invalid");
  93.     }
  94. });