2014-02-28 36 views
0

我已經預裝了Web窗體上的隱藏字段。 jQuery的按鈕被點擊asp.net mvc發送jquery生成的隱藏字段到控制器動作

<input type ="hidden" class="serviceslist " value="1"/> 
<input type ="hidden" class="serviceslist " value="2"/> 

當我點擊addmore按鈕添加額外的隱藏字段,這些隱藏字段被成功發送到控制器。當點擊jQuery按鈕時,這些隱藏的字段不會被髮送到控制器。可能是什麼問題?他們是不是在目前?

<input type ="hidden" class="serviceslist " value="3"/> 
<input type ="hidden" class="serviceslist " value="4"/> 


    $('#addmoreservices').on('click', function() { 
     var url = "/Quotation/AddmoreServices/"; 

     var serviceslist = $(".serviceslist ").serialize();   
     $.ajax({ 
      url: url, 
      data: { serviceslist: serviceslist }, 
      cache: false, 
      contenttype: 'application/json', 
      dataType: "json",    
      type: "GET", 
      success: function (data) {   

       return false; 
      }, 
      error: function (reponse) { 
       alert("error : " + reponse); 
      } 

這是我試圖發送整個一堆隱藏字段(預加載和創建)到控制器的按鈕的代碼。預裝正在發送並且被創建的人被留下)

+0

僅序列化名稱爲 – chenZ

+0

的輸入過程可以添加代碼以動態添加輸入字段嗎?或者它是這樣的,你可以在這個函數的成功回調中添加輸入字段? – HCJ

+0

解決的辦法是使 – HCJ

回答

0

爲字段添加唯一的名稱。不要一遍又一遍地使用同一個名字。

1

您正在動態添加元素,因此在您設置點擊處理程序時它未被註冊。 爲此還調用事件處理程序,一旦你已經創建了動態元素

您還沒有表現出足夠的代碼,爲此很難說出確切的解決方案,

+0

的'click'處理程序已經添加到code.please中去看它 – maztt

+0

用'$(document.body).on('click')改變附加事件處理程序的第一行, '#addmoreservices',function(){',這將爲動態元素附加事件處理程序 – sanjeev

0

如果輸入有一個名稱,序列化()可以處理

<input type ="hidden" class="serviceslist " value="1" name="a" /> 

,但如果所有的輸入名稱爲「A」,序列化的結果是

a=1&a=2&a=3.... 

我認爲這是不是喲ü要
也許你想

1,2,3,4.... 

嘗試使用

$(".serviceslist").map(function(){return $(this).val();}).get().join(",") 
0

儘量使 '點擊' 事件處理程序的獨立js函數像

$('#addmoreservices').on('click', addHandler) 

var addHandler = function(){...}; 

然後在addmore按鈕單擊處理程序,將新的輸入添加到dom後,再次綁定addmoreservices按鈕單擊處理程序的addHandl呃」。這將包含'addHandler'函數中新創建的輸入。

相關問題