2012-01-25 52 views
0

我想在我的grails應用程序中使用submitToRemote按鈕用於webflow。我正在使用jquery來處理ajax。我創建了改變submitToRemote按鈕是一個網絡流中和武官事件ID爲這樣一個自定義標籤庫...jquery grails表單提交不工作在IE

def remoteWebFlowSubmit = {attrs, body -> 

     def elementName = attrs['name'].replaceAll(/ /, "_") 
     def button = submitToRemote(attrs, body) //<-- standard grails submitToRemote button 

     button = button.replaceFirst(/data\:jQuery/, "data:\'_eventId_${elementName}=1&\'+jQuery") 

     out << button 
    } 

這個工作在火狐和Chrome,但不提交任何形式的數據在IE 9,8或7中生成的按鈕看起來像這樣在IE中:

<input name="next" onclick="showSpinner('webFlowContainer');;jQuery.ajax({type:'POST',data:'_eventId_next=1&'+jQuery(this).parents('form:first').serialize(), url:'/MySite/MyController/run?execution=e3s1',success:function(data,textStatus){jQuery('#webFlowContainer').html(data);},error:function(XMLHttpRequest,textStatus,errorThrown){jQuery('#webFlowContainer').html(XMLHttpRequest.responseText);}});return false" type="button" value="Next"/> 

我在做什麼錯?我看到JS控制檯沒有錯誤。

UPDATE:

1)我還添加一個Grails過濾,以防止從被緩存Ajax響應。這裏是過濾器:

class AjaxFilters { 
    def filters = { 
     all(controller:'*', action:'*') { 
      before = { 
       if (request.getHeader('X-Requested-With')?.equals('XMLHttpRequest')) { 
        response.setHeader('Expires', '-1') 
       } 
      } 
     } 
    } 
} 
+0

你得到任何JS錯誤?如果將日誌記錄放入''ajax'調用的'error'塊,而不是將其留空? –

+0

我已更新我的問題並添加了錯誤塊。沒有js錯誤。 –

回答

1

這個問題似乎是,我號召包含我試圖提交表單元素同一div的onclick="showSpinner('webFlowContainer');。如果我使用不同的div來顯示ajax微調器,它可以正常工作。

謝謝!