0

私は JQueryMobile の Datebox を使用していますが、日付変更イベントに接続する方法が見つかりません (おそらく明らかな何かが欠けています!) カレンダーをインラインで使用しているため、違い。

カレンダーで日付を選択したときにイベントをトリガーする方法はありますか? ありがとう、ベッキー

4

1 に答える 1

4

解決

この例は DateBox2 に基づいて作成されています。古いバージョンを使用している場合は教えてください。

作業例: http://jsfiddle.net/Gajotres/ktbcP/15/

HTML:

<!DOCTYPE html>
<html>
<head>
    <title>jQM Complex Demo</title>
    <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=no; target-densityDpi=device-dpi"/>
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
    <link type="text/css" href="http://dev.jtsage.com/cdn/datebox/latest/jqm-datebox.min.css" rel="stylesheet" />       
    <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>        
    <script type="text/javascript" src="http://dev.jtsage.com/jquery.mousewheel.min.js"></script>
    <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/latest/<jqm-date></jqm-date>box.core.min.js"></script>
    <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/latest/jqm-datebox.mode.calbox.min.js"></script>
    <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/latest/jqm-datebox.mode.datebox.min.js"></script>
    <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/latest/jqm-datebox.mode.flipbox.min.js"></script>
    <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/latest/jqm-datebox.mode.durationbox.min.js"></script>
    <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/latest/jqm-datebox.mode.slidebox.min.js"></script>
    <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/i18n/jquery.mobile.datebox.i18n.en_US.utf8.js"></script>      
</head>
<body>
    <div data-role="page" id="index">
        <div data-theme="a" data-role="header">
            <h3>
                First Page
            </h3>
            <a href="#second" class="ui-btn-right">Next</a>
        </div>

        <div data-role="content">
            <label for="mydate">Some Date</label>
            <input name="mydate" id="mydate" type="date" data-role="datebox" data-options='{"mode": "datebox", "useNewStyle":true}'/>
        </div>

        <div data-theme="a" data-role="footer" data-position="fixed">

        </div>
    </div>   
</body>
</html>   

Javascript:

$(document).on('pageinit', '#index', function(){ 
    $('#mydate').bind('datebox', function(e, p) {
        if ( p.method === 'set' ) {
            e.stopImmediatePropagation()
            alert('Changed');
        }
    });
});

説明

DateBox2 にはいくつかのコールバック関数があり、set はその 1 つです。次のように、datebox イベントを入力ボックスにバインドする必要があります。

$('#mydate').bind('datebox', function(e, p) {
    if ( p.method === 'set' ) {
        e.stopImmediatePropagation()
        alert('Changed');
    }
});

そして、適切な方法を確認してください。それらの公式ドキュメントには、完全なメソッド リストが含まれています。

残念ながら、これが必要な場合、手動の日付変更を検出するイベントは存在しません。

于 2013-07-30T13:56:46.740 に答える