2012-01-25 7 views
0

私はgrailsアプリケーションのwebflowにsubmitToRemoteボタンを使用しようとしています。私はjQueryを使ってAjaxを処理しています。私は、これはファイアーフォックスとChromeに動作しますが、任意の形式のデータを提出していない...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 
    } 

をウェブの流れの中にも、そのようにEVENTIDをアタッシュケースするsubmitToRemoteボタンを変更するカスタムタグライブラリを作成しました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)私はまた、キャッシュされたAjax応答を防ぐために、Grailsのフィルターを追加しました。ここでは、フィルタは次のとおりです。

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スピナーを表示すると、うまく動作します。

ありがとうございます!

関連する問題