2011-04-05 34 views
0

尊敬的專家, 我正在關注[Mr.Steve Sanderson示例] [1]用於處理可變長度列表,ASP.NET MVC 2樣式。如何在JQuery中調用ViewResult

下面的代碼是完全增加新的項目,當我們點擊「添加更多」超鏈接: -

我想要的,而不是點擊「添加更多」,使功能$("#addItem").click裏面做同樣在做什麼,我在我的例程中調用該函數。

有人可以指導我怎麼做到這一點?

控制器代碼: -

public ViewResult BlankEditorRow(string formId) 
    { 
     return new AjaxViewResult("ChequeDetail", new cheques()) { UpdateValidationForFormId = formId }; 
    } 

查看代碼: -

<%= Html.ActionLink("Add More", "BlankEditorRow", new { ViewContext.FormContext.FormId }, new { id = "addItem" }) %> 

JQuery的: -

$("#addItem").click(function() { 
    $.ajax({ 
    url: this.href, 
    cache: false, 
    success: function (html) { 
     $("#editorRows").append(html); 
    } 
    }); 

    return false; 
}); 

回答

0

我得到它與這行代碼的工作: -

  var a = document.getElementById('addItem'); 
     $(a).trigger('click'); 

很抱歉,如果我沒有表達清楚我的問題。

0

我不是真正的確定你想做什麼不同,你想在你的actionlink中添加點擊處理程序,而不是現在使用的jQuery?

查看

<%= Html.ActionLink("Add More", "BlankEditorRow", new { ViewContext.FormContext.FormId }, new { id = "addItem", onclick="AddItem();" }) %> 

的Javascript

function AddItem() 
{ 
    $.ajax({ 
     url: this.href, 
     cache: false, 
     success: function (html) { 
      $("#editorRows").append(html); 
      } 
     }); 

     return false; 
    }); 
} 
+0

請看我的更新 – alhashmiya 2011-04-05 13:29:12

0

我也不清楚你想要什麼不同,但如果我把你的問題的權利,你不想讓點擊每個鏈接的事件?

如果是這樣的話,你可以這樣做:

$.fn.addTo = function (element) { 
    return this.each(function() { 
    $(this).click(function() { 

     $.ajax({ 
     url: this.href, 
     cache: false, 
     success: function (html) { 
      $(element).append(html); 
     } 
     }); 

     return false; 
    }); 
    }); 
} 

現在你只需要在你的項目的啓動初始化此:

$('.addItem').addTo('.container'); 

,並與一流的每一個環節「的addItem」將加載它的href並將其附加到「.container」。也許你必須改變添加到不同容器的邏輯,但希望你得到的重點:)

+0

Kristoffer,你是對的我不想通過點擊事件添加,而是我想自動當我$(「#ScanBCode」)。鍵盤(功能(e)調用裏面有其他條件if其他條件調用在這一點上,我想添加新的項目 – alhashmiya 2011-04-05 13:55:20

+0

對不起,但我不明白這個問題。你的函數「AddNewRow」似乎完全適合你的else語句,因爲這是當你想添加一個新的行,糾正我,如果我',錯 – 2011-04-05 14:06:53

+0

是的,但新項目不添加:(我不知道有沒有錯誤 – alhashmiya 2011-04-05 14:27:15

0

Okey,你的代碼存在問題。你不應該首先聲明一個函數。這意味着,你的函數「AddNewRow」應該寫在你的調用上。

其實,我只想跳過功能,這樣做:

else { 
    $.ajax({ 
      url: this.href, 
      cache: false, 
      success: function (html) { 
       $("#editorRows").append(html); 
      } 
    }); 
} 

應該這樣做!

+0

首先,我會更改網址爲「yourControllerName/BlankEditorRow /」,其次​​,如果「.text -box-Area「,」.text-box-Cons「等是從你的ajax調用中返回的元素,我會把它們放在你的成功函數中,因爲這是回調函數。 – 2011-04-06 11:44:20

相關問題