2013-10-08 59 views
0

我有,我有custmize動作點擊一個asp.net應用程序提交表單的按鈕:重定向與asp.net的MVC應用程序的操作使用javascript調用

腳本

<script> 
    $(function(){ 
    function result(arr, identificateur,Pages) { 
    var f1 = $('input[name="reception' + arr + '"]').val(); 
    var f2 = $('input[name="client' + arr + '"]').val(); 
    var f3 = $('input[name="cloture' + arr + '"]').val(); 
    var f4 = $('input[name="tag' + arr + '"]').val(); 
    location = "@Url.Content("/Pages/Index")?identificateur=" + identificateur + "&Pages=" + Pages + "&_reception=" + f1 + "&_cloture=" + f3 + "&_client=" + f2 + "&_tag=" + f4; 
    }}); 
    </script> 

然後,形式爲:

<input type="submit" onclick="result(@i.ToString(),@Model[1][i].Id ,"1");" value="Enregistrer"/> 

當我點擊進入提交按鈕,沒有什麼是happend我不重定向到行動Index

這個問題的原因是什麼?我該如何解決它?

編輯

<input type="submit" id="Enregistrer" value="Enregistrer" data-arr="@i.ToString()" data-identificateur="@Model[1][i].Id" /> 





<script> 
    $(function() { 
      $('#Enregistrer').click(function() { 
      var self = $(this); // This is the submit button 
      var identificateur = self.data('identificateur'); 
      var arr = self.data('arr'); 
      var f1 = $('input[name="reception' + arr + '"]').val(); 
      var f2 = $('input[name="client' + arr + '"]').val(); 
      var f3 = $('input[name="cloture' + arr + '"]').val(); 
      var f4 = $('input[name="tag' + arr + '"]').val(); 
      document.location.href = "@Url.Content("/Pages/Index")?identificateur=" + identificateur + "&Pages=1&_reception=" + f1 + "&_cloture=" + f3 + "&_client=" + f2 + "&_tag=" + f4; 
     }); 
    }); 
    </script> 

的問題:

  1. 重定向並不僅在第一tr工作
  2. 我能達到js功能
+0

你試過location.href = ...? 或location.replace(...) – Romko

+0

請添加您的瀏覽器渲染html和javascript –

+1

您是否遇到任何控制檯錯誤?你的代碼是否達到'result()'函數?嘗試在'result()'中添加'console.log(「IM IN RESULT()」);'並檢查它是否顯示在控制檯中。 –

回答

1

我想我看上兩個錯誤:

location 

應該

location.href 

;第二,嘗試用javascript:前綴功能:

<input type="submit" onclick="javascript:result(@i.ToString(),@Model[1][i].Id ,"1");" value="Enregistrer"/> 


甚至更​​好,使用不顯眼的JavaScript和HTML5 data-屬性。

<input type="submit" id="Enregistrer" value="Enregistrer" data-reception="@i.ToString()" /> 

用下面的JavaScript:

$('#Enregistrer').click(function() { 
    var self = $(this); // This is the submit button 
    var reception = self.data('reception'); // Get the data from the attributes. 
}); 
+1

它是好的,但對於參數我怎麼能加它 –

+1

@Lamloumi好點,我更新的答案。順便說一句,'javascript:'前綴是否在'onclick'屬性中工作? –

+0

請看我的編輯 –

1

認沽0123的定義裏面的函數$(function(){ /* put it here */ });而不是簡單的<script>

還記得把撇號,而不是引號的onclick="result(@i.ToString(),@Model[1][i].Id ,"1");"

當你通過"「`。

應該

onclick="result(@i.ToString(),@Model[1][i].Id ,'1');" 
+0

相同的結果!看到我的編輯PLZ –

+0

爲撇號我不理解你對不起 –

+0

請參閱我的編輯 –

2

'傳遞string parameter'someVal',否則你會得到undefined error

以下行更改此

onclick="result(@i.ToString(),@Model[1][i].Id ,"1");" 

onclick="result('@i.ToString()','@Model[1][i].Id' ,"1");" 

會讓你的JavaScript函數的調用,否則,所有呈現的字符串將被視爲變量像下面,你會得到someval,someId undefined error

onclick="result(someval,someId ,"1");" 

還可以使用location.href導航

+0

問題是,我不能達到javascript功能不在裏面 –

+1

@Lamloumi,更新了答案。現在你可以達到你的js功能 –

+0

相同的結果,我無法達到js功能 –

相關問題