2013-05-05 57 views
2

這似乎奇數和很可能是一個PEBKAC地方動態jQuery選擇......我試圖做一個jQuery的功能,其作用是通過ID頁面元素,其中ID由模型從MVC3填充上現場。創建在MVC3

我必須使用Ajax的形式寄回幫手,看起來像這樣:

   <div id="[email protected](Model.Meeting.Id)" class="rsvp"> 
          <text>You coming or what?</text> 
          using (Ajax.BeginForm("Rsvp", "Member", new AjaxOptions() { InsertionMode = InsertionMode.Replace, UpdateTargetId = "meeting_" + Model.Meeting.Id, OnBegin = "TryRsvp();", OnSuccess = "DidRsvp();", OnFailure = "FailRsvp();"})) 
          { 
           @Html.HiddenFor(m => m.CurrentUser.Id); 
           @Html.HiddenFor(m => m.Meeting.Id); 
           <input type="submit" name="btnSubmit" value="Yes!" /> 
           <input type="submit" name="btnSubmit" value="No" /> 
          } 
       </div> 

當提交按鈕中的一個被稱爲JavaScript進行TryRsvp()火災:

function TryRsvp() { 
    alert('trying to rsvp'); 
    $('#[email protected](Model.Meeting.Id)').toggle();  
    alert('did script'); 
} 

我得到了兩個警報 - 但切換不起作用。

我看了代碼是輸出和線路是這樣的:

$('#rsvp_323e52cc-3058-4bfd-9a4f-0cb9653ebe99').toggle(); 

這看起來是正確的。

奇怪 - 如果我硬代碼行(即我用螢火找到生成的腳本,然後複製並直接粘貼到網頁),那麼它工作正常。但是,當MVC3動態生成時,它會動態失敗 - 即使據我所見,結果JavaScript是相同的。

這是怎麼回事嗎?有沒有關於MVC3傳遞頁面的方式以及腳本會在這裏有所作爲?

任何線索讚賞

+0

它可能是切換需要jQuery和出現這種情況或無法訪問由於某種原因時,或者不加載庫的事實。嘗試將它改爲像dom api,比如'document.getelementById(「IDinquestion」);'只是爲了檢查它是否確實被正確添加,並且它不是jQuery的問題。 – Nomad101 2013-05-05 13:55:06

+0

我想如果jQuery的不工作然後硬編碼標識會失敗,但硬編碼的腳本工作正常 – Kaine 2013-05-05 14:11:58

+0

這只是一個建議淘汰的可能性。除此之外,它應該至少從我可以說的事情來看。 – Nomad101 2013-05-05 14:12:59

回答

0

看代碼,你可能已經添加了TryRsvp()到你的主頁,這是行不通的,因爲該元素不會在DOM存在時,函數解析。

您需要可以指定類或輸出功能與形式一起。