2015-09-29 69 views
0

我發現了很多關於此的帖子,但我無法得到這個爲我的生活工作。在提交表格時,我需要代碼1)提交表格並2)重定向到案例陳述中的一個位置。我可以在沒有案件的情況下提交表單,並且我可以讓表單重定向,但是我無法將它們同時做到這一點。請告訴我我正處於正確的軌道上,但只是在錯誤的地方有代碼,我一直盯着這個方式太長,並且遇到了障礙。Jquery提交表單,然後重定向不工作

$("#submitBtn").click(function (event) { 
     event.preventDefault(); 
     var validator = $(this).closest("form").kendoValidator({ 
      messages: { 
       required: function (input) { return getRequiredValidationMessage(input) }, 
       custom: function (input) { return getInvalidValidationMessage(input) }, 
      }, 
      rules: { 
       custom: function (input) { 
        var minlength = $(input).attr('data-minlength'); 
        var required = $(input).attr('required'); 
        if (typeof minlength !== typeof undefined && minlength !== false && ((typeof required !== typeof undefined && required !== false) || $(input).val().length > 0)) { 
         var minlength = $(input).data('minlength'); 
         return $(input).val().length >= minlength; 
        } else { 
         return true; 
        } 
       } 
      } 
     }).data("kendoValidator"); 
     if (validator !== undefined) { 
      if (validator.validate()) { 
       $("aspnetForm").submit(); 

       if ($("aspnetForm").submit()){ 
        switch(document.getElementById('interests').value){ 
         case "stair-lifts": 
         window.location.href="/Catalog/Online-Catalog-Category/15522/Stair-Lifts"; 
         break; 

         case "wheelchair-ramps": 
         window.location.href="/Catalog/Online-Catalog-Category/15521/Ramps"; 
         break; 

         case "roll-in-barrier-free-showers": 
         window.location.href="/Catalog/Online-Catalog-Category/15529/Bathroom-Safety"; 
         break; 

         case "walk-in-tubs": 
         window.location.href="/Catalog/Online-Catalog-Category/15529/Bathroom-Safety"; 
         break; 

         case "patient-lifts-ceiling-lifts": 
         window.location.href="/Catalog/Online-Catalog-Category/15523/Patient-Lift"; 
         break; 

         case "wheelchair-lifts": 
         window.location.href="/Catalog/Online-Catalog-Category/15525/Wheelchair--Scooter-Lifts"; 
         break; 

         default: 
         window.location.href="/"; // if no selection matches then redirected to home page 
         break; 
        }// end of switch 
       } 

      } else { 
       $('.k-invalid:first').focus(); 

       $('.k-invalid').blur(function() { if (this.checkValidity()) { $('.k-invalid:first').focus(); } }); 
      } 
     } else { 
      $(this).closest("form").submit(); 
     } 

    }); 
}); 

回答

0

表單提交和頁面重定向發生衝突,因爲在基本網頁中,只有其中一個可能發生。當表單提交時,它將通過所需的方法將表單數據發送到服務器 - 通常是GETPOST

相反,當重定向switch語句運行時,它會告訴瀏覽器更改頁面url。

這兩個事件都會觸發瀏覽器中的頁面更改,但只有一個可以真正發生。

最能幫助你的是通過AJAX請求提交表單數據,然後在完成時調用重定向代碼。

由於看起來您已經在使用jQuery,請查看post method here

1

您不應該爲此使用.submit()。由於您使用的JQuery的,你應該使用AJAX請求,格式是這樣的:

$("#submitBtn").click(function (event) { 
    $.ajax({ 
     url : "/your/url", // Whatever URL you're submitting to goes here 
     type : "post", 
     data : yourData, // Whatever data you're sending goes here 
     success : function(data) { 
      // Whatever you want to do on success goes here 
     } 
    }); 
}); 

你讓在AJAX查詢成功執行該功能的URL部分的開關。

+0

嗯,似乎沒有與.NET工作,我想唯一的方法來做到這一點是創建一個隱藏的字段,存儲的價值,然後重定向提交。 – jlg

+0

你可以更新你的帖子以顯示你目前使用的是什麼?我不認爲將任何內容存儲在隱藏字段中都會起作用,因爲當您執行'.submit()'時,會導致整個頁面重新加載。任何隱藏的字段最終都會隨着頁面的其餘部分一起被丟棄。 –