在另一页上进行javascript功能/按钮点击事件调用

时间:2011-11-22 05:06:22

标签: javascript jquery grails

我需要调用一个javascript函数(包含一个jquery.ajax()调用),如showfilterresult()。在monitor.gsp页面上调用此调用,点击“filter”之类的按钮。

我正在进行的调用来自另一个页面,我需要做的是加载montoring.gsp页面,并在加载的页面上调用showfilterresult()。 (所以我想打两个电话,一个到页面,另一个到页面上的一个功能)

现在我正在这样做:

 <javascript>
jQuery.ajax({
     var myurl = /myapp/users/monitoring
        url: myurl,
        dataType: 'html',
        timeout: 10000,
        beforeSend: function() {
             jQuery('#mydiv').html(../showspinner.gif)
          },
        success: function(data) {
        window.location = myurl;
        }
      });

</javascript>

showfilterresult()功能如下:

function showFilterResult(){
    var frm=jQuery('#fromDate').val();
    var to=jQuery('#toDate').val();
    if($('#fromDate').val().length>0  && $('#toDate').val().length>0){
            jQuery.ajax({
                type:'POST',
                data:{
                    'timeWindow':$("#timeWindow").val(),
                    'p1':p1,
                    'p3':$('#p3 option:selected').text(),
                    'fromDate':$("#fromDate").val(),
                    'toDate':$("#toDate").val(),
                },
                url: '/myapp/users/filterResult',
                beforeSend: function() {
                    jQuery("#filteredResult").html('/showspinner.gif')
                },
                success:function(data,textStatus){
                    jQuery("#filteredResult").html(data)
                }
            });

我还需要知道如何将url参数传递给我的页面中的showfilterresult()调用,默认情况下,该函数采用monitoring.gsp页面上文本字段的值。

更新:这类似于:我有我的个人网页,我需要调用另一个网页,例如google.com,还需要传递一些参数并使用参数在google.com上调用“搜索”调用,所以一次我单击链接/按钮我的网页它不仅转发到google.com,而且还通过我传递的参数调用搜索事件,我直接看到谷歌搜索结果页面。

此致 Priyank

1 个答案:

答案 0 :(得分:0)

不要使用原生jQuery.ajax功能。在grails中,您有一个jquery插件。

  1. 使用grails install-plugin jquery安装此插件。

  2. 使用<g:javascript library="jquery" />

  3. 将jQuery文件导入html
  4. 将第一个AJAX函数替换为:

    <g:remoteFunction
         controller="user"
         action="monitoring"
         before="$('#mydiv').html('../showspinner.gif')"
         onComplete="window.location = ${createLink(
             controller: 'user', 
             action: 'monitoring')}" />
    
  5. 将第二个AJAX函数替换为:

    <g:remoteFunction
         controller="user"
         action="filterResult"
         params="$('#yourFormId').serialize()"
         before="$('#filteredResult').html('/showspinner.gif')"
         update="filteredResult" />
    
  6. 也许您必须检查您的参数是否设置正确。在任何情况下,您都可以使用params标记在第一种情况下提供参数。