2013-04-27 85 views
1

我有一個視圖showform.phtml,通過jquery dialog加載到div。在視圖中,我正在使用$(form).submit()偵聽器加載JavaScript。問題是,JavaScript從不加載。我嘗試了幾種不同的方法,包括$this->headScript()->appendScript(script),$this->headScript()->appendScript(file)。我甚至嘗試在佈局和索引視圖中包含腳本,以確保它可用...但彈出窗口永遠不會觸發它。Zend Framework 2 - jquery模式彈出問題

我懷疑這與我在表單視圖中使用setTerminal(true)這個事實有關......但我不知道替代方法是什麼。

任何人有任何疑難解答建議?或者有關這個問題的任何經驗?

感謝

編輯: 這是樣品javasctipt,在index.phtml視圖

$(function() 
{  
    $("form#News").submit(function() 
    { 
     $.ajax(
     { 
      type: 'POST', 
      url: '/main/manage/validateajax', 
      data: $('form#News').serialize(), 
      success: 'success' 
     }); 

     return false; 
    }); 
}); 

視圖的體載荷是showform.phtml加載到 showform一個div創建一個形式叫#News。

當我將js代碼插入到showform體中時,它可以工作。當我將它附加到headScript時,它不起作用。

+0

它的邏輯:** setTerminal(真)**是穿上」 t加載佈局,並且您的headScript助手在佈局中。試着在視圖中打印你的JS,或者將它包含到主js中(當你調用模態時它已經加載) – 2013-04-27 19:18:06

+0

我試過了,我甚至把它加載到了佈局中,但它似乎對視圖是不可見的。 (或者這個視圖對js來說看起來是不可見的)。我沒有嘗試只是加載到視圖的身體...我會給這一個鏡頭。謝謝。 – aserwin 2013-04-27 19:20:25

+0

所以,如果我將腳本插入到視圖的主體中,它就可以工作。首先,這不是很好的形式,但主要是我不應該這樣做!我確定有些應用程序使用js和模式彈出窗口。是什麼賦予了?有沒有解決方法? – aserwin 2013-04-27 20:14:19

回答

0

也許這是一個解決方案。

要求:你的模式視圖的腳本都被已經加載(例如內部的application.js

$("#loadModalBtn").click(function(e){ 
    e.preventDefault(); 

    var url = $(this).attr("href"); 

    $("#modalContainer").load(url, function(){ // that's the point 

     var urlForm = $("form#News").attr("action"); 

     $("form#News").submit(function(){ 
      $.ajax({ 
       type: 'POST', 
       url: urlForm, 
       data: $('form#News').serialize(), 
       success: 'success' 
      }); 
      return false; 
     }); 
    }).dialog({ 
     height: 140, 
     modal: true 
    }); 
});