如何调用datepicker的控制器动作ononchange事件?

时间:2012-11-07 10:04:10

标签: javascript jquery ajax grails datepicker

您好我有自定义日期选择器,我想在年度的onchange事件上计算一些东西。

以下代码不适用于onchange。我也试过onchange并调用javasript函数,就像这个onchange='toggleTextAreaForTypeOfDischarge(name);'但结果搞砸了。就像它在年度下拉人口中调用'toggleTextAreaForTypeOfDischarge()一样。因此,如果有100年的时间,它将称之为100次,并且在实际选择年份时不会调用它。

<g:icmDatePicker name="enteredIntoServiceDate" precision="day" default="none" value="${activeReserveDutyServiceInstance?.enteredIntoServiceDate}" noSelection="['': 'Select...']"   years="${dateRange }" yearSortOrder="desc"onchange="${remoteFunction(action:'getCityAndState', controller:'postcode',params:'\'zipcode=\' + this.value, onSuccess:'getCityAndState(data,\'i11\',\'i12\')')}"/>

我能够让这个活动像这样:

<script type="text/javascript">
$(document).ready(function(){
    $("select[id ^= enteredIntoServiceDate_year], select[id ^= enteredIntoServiceDate_month], select[id ^= enteredIntoServiceDate_day]").change(function (){
       checkPeriodOfwarAccdgToDate()
    });


 });

function checkPeriodOfwarAccdgToDate()
{
    alert("test")

}
</script>

但我的问题是我需要从那里调用控制器和动作,所以我可以在后面的代码中进行计算,所以我将其插入checkPeriodOfwarAccdgToDate函数但不起作用。

$.ajax({
        alert("test")
           url: 'Postcode/GetCityAndState',
           type: 'POST',
           data: form,
        dataType: "text",
           success: function(obj){
                    alert(obj);
           }    
        });

任何人都可以指出我是如何在更改此日期选择器的事件中从控制器调用操作的权利。谢谢。

1 个答案:

答案 0 :(得分:0)

我认为最简单的方法是使用在on change事件中执行的remoteLink函数。

您可以在这里查看remoteLink:

remoteLink Grails documentation

在那里你可以找到一种在jsp上使用它的简单方法。

my link = <%= remoteLink(action: 'show', id: 1,
              update: 'success', onFailure: 'showError();')
              { "this is the link body" } %>

希望它有助于或给你一个如何继续前进的暗示。

祝你好运!