jquerymobile datebox - 如何在选择日期时调用函数

时间:2013-07-18 09:44:10

标签: jquery-mobile datebox

我使用jquerymobile日期框继承了一些代码。到目前为止,代码集中于使应用程序看起来正确。我需要使其工作,以便在选择日期时,将使用日期和加载的新页面调用服务器。大多数示例只是更改页面中的日期。

目前的代码是: -

$('#daycal').live('click', function() {
  $('#catchdate').datebox('open');
});

$( "#catchdate" ).bind( "change", function(event, ui) {
  $("#test1").val("xyz");
});

<div data-role="fieldcontain">
  <label for="catchdate">Some Date</label>
  <input name="catchdate" type="date" data-role="datebox" id="catchdate" data-options='{"mode":"calbox", "useNewStyle":true, "theme":true, "themeHeader":"f", "themeDateHigh":"f", "themeDatePick":"e", "themeDate":"f", "centerHoriz":true}' />
  <input id="test1" type="text"/> <!-- Later changed to a function call -->
</div>

在我的简单测试中,我预计输入中的文本会在选择日期时发生变化。

我见过一个使用bind来改变事件的例子,但我无法让它工作。在示例中,我只是更改了输入元素中的值,稍后将更改为函数调用。

我也在寻找答案的某个地方看到了一条“现场”被弃用的评论。

最后,我认为我可以使用closeCallback('Callbacks('openCallback'和'closeCallback')很容易使用...')但是找不到任何应该如何使用的例子。

我需要做哪些更改才能获得所需的功能?

2 个答案:

答案 0 :(得分:5)

您可以尝试使用日期框的关闭功能,这样当用户更改日期选择时,他会创建并关闭日期框,您可以使用所选日期调用服务器方法:

$('#DateSelectorId').bind('datebox', function (e, passed) { 
    if ( passed.method === 'close' ) {  
        // selected date
        var date = $('#DateSelectorId').val();          
        // make your service method and change page to another page
    }
});

答案 1 :(得分:0)

认为这可以解决它

$('#catchdate').on('datebox', function(e, p) {
   if ( p.method === 'close' ) {
       alert('DO SOMETHING');
   }
});

你可以去 Fiddle

进行测试

**我认为你需要对输入框空或不是

进行一些验证检查