2016-12-15 9 views
0

下記のようにonSelectイベントを発生させようとしていますが、動作していません。datepicker - datePickerオブジェクトによって初期化されたときにonSelectイベントが発生しない

アプリケーションデザインごとにdatepickerオブジェクトを使用する必要があります。

var datePickerObject = $('#datepicker').datepicker(); 
 

 
datePickerObject.datepicker(
 
    { 
 
    onSelect: function(dateText, inst) { alert("Working"); } 
 
    } 
 
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.js"></script> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.css" rel="stylesheet"/> 
 

 
<input type="text" id="datepicker"/> //Updated as per Oscar jar suggestion

任意の提案を大幅に理解されるであろう。間違った場合

+0

は '$(「#の日付ピッカー」)です日付ピッカー()'ランニング。 '$(document).ready(function(){...})'の内部にありますか? – joaumg

+0

警告onShowまたはonSelectが必要ですか? –

+0

onSelectが解雇されたときに警告が欲しい –

答えて

1

は、私を修正しますが、私はあなたが間違ってやっていることだと思うあなたのdatepickerコンポーネントが他の構成を追加する際に再びdatePickerObjectを作成するときに初めてdatepicker(...)メソッドを呼び出すときが2回を初期化してきているということですonSelect関数のような)からobjectはすでにに初期化されています(2度目に追加されたため、機能しない可能性があります)。

var cfg = {}, 
 
    cmp = $('#datepicker'); 
 

 
// Add event handlers 
 
cfg.onSelect = onDateSelect; 
 

 
// Add other configs 
 
cfg.changeMonth = true; 
 
cfg.changeYear = true; 
 
cfg.dateFormat = 'dd-mm-yy'; 
 

 
// Initialize component 
 
cmp.datepicker(cfg); 
 

 
function onDateSelect(date, cmp) { 
 
    console.log('Selected date is: %o', date); 
 
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.js"></script> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.css" rel="stylesheet"/> 
 

 
<div id="datepicker"></div>
:あなたはそれをやって回避し、あなたは一度だけのためにコンポーネントを初期化し、を必要な設定を使用する場合

だから、それは作業は、あなたが取得します(以下の例を参照してください)一方


あなたのコードスニペットに次のように持っていた理由は、私は疑問に思う:

<div type="text" id="datepicker"></div> 

type属性がdiv要素の一部ではないので)

それはあなたがこのように、あなたのdatepickerコンポーネントのinputを追加し、その後必要なものです場合:

<input type="text" id="datepicker"/> 

更新日:

私はあなたのコードをテストし、初回のみのコンポーネントを初期化するとき、あなたのイベントハンドラを渡され、それが動作しました:

var datePickerObject = $('#datepicker').datepicker({ 
    onSelect: function(dateText, inst) { 
    alert('Working'); 
    } 
}); 
関連する問題