2013-08-23 11 views
5

私は自分のサイトに日付ピッカーを追加しようとしています。これにより、複数の非並行日付を選択することができます。 Multidatespickerは私が望むことをしているようだが、私はバグを発見したと思っている点を知っている。特にAltFieldは、hereである。バグはaltfieldの値の表示を停止するようです。 Multidatespicker demoにアクセスしてaltフィールドを調べると、空白のように見える間に値がコード内に表示されます。複数の日付ピッカーバグ?

この問題は、私のApp/DBからレコードを返す際に以前に選択した日付を編集できないという問題があります。 altfieldの値をデータベースストレージ用のRails Appに渡すと、コードに表示される隠し値しか受け取られません。

これらの値を正しく表示し、日付セレクタで編集できるようにaltfieldを取得できる場合は、アプリのバックエンドで修正する必要があります。

上記のgithubリンクの推奨された修正は、この問題を解決しないことに注意してください。ピッカーで選択された 'dateVar'のレンダリングのみ有効です。altFieldに値を表示することはありません。

誰もこれを使用して、同じ問題を抱えて解決しましたか?

誰でも修正方法を知っていますか?

OR

誰もがTwitterのブートストラップを使用して、レール3のAppとうまく動作します良い代替を提案することができます。私は複数の非同時の日付を選択できることは非常に重要です。私は非常に幅広く検索しましたが、MultiDatesPickerは私が見つけることができる唯一のオプションのようです。

答えて

3

はリスニング#altFieldではないので、日付を追加/削除するために独自のリスナーを作成する必要があります。

入力は、hiddenまたはreadonly入力に値を追加し、日付を追加/削除することです。これにより、顧客は#altFieldに日付を追加し、プラグインによってそれらを上書きすることができなくなります。

HTML

<input type="text" id="date"> 

<button type="button" id="addDate">Add dates</button> 

<button type="button" id="removeDate">Remove dates</button> 

<div class="ui-state-error" id="error"></div> 
<br /> 
<input type="text" id="altField" readonly value="2013-08-30,2013-08-31"> 

JAVASCRIPT

とJavaScriptを我々は、単にあなたの想像力が想像することができます:)

var dates = $('#altField').val().split(','); 


    $('#datepicker').multiDatesPicker({ 
    dateFormat: "yy-mm-dd", 
    addDates: dates, 
    altField: '#altField' 
    }); 

    $('#addDate, #removeDate').on('click', function() { 
     try { 
      var $date = $('#date'); 
      var addOrRem = $(this).attr('id') === "addDate" ? 'addDates' : 'removeDates'; 

      $('#datepicker').multiDatesPicker(addOrRem, $date.val()); 
      $date.val(''); 
     } catch (e) { 
      var $error = $('#error'); 
      $error.html(e).slideDown(); 
      setTimeout(function() { 
       $error.slideUp(); 
      }, 2000); 

     } 
    }); 
からkeyupか何かにすることができた(ボタンで日付を追加

jsFiddle

+0

うわー、これはほぼ完璧です!ありがとうございました。私がそれを持っていると思われる唯一の問題は、私がプリセット値なしで新しいフォームをレンダリングするときです。複数の日付を選択することはできないようです。これは、jsFiddleの例でvalue属性を削除した場合のようです。どのようにそれを修正するための任意のアイデア?私のJSの知識は弱いので、本当にここであなたの助けに感謝します。 – Raoot

+0

更新されたフィドルです:http://jsfiddle.net/pfc2b/8/ロジックは、日付がない場合、配列の代わりに空の文字列を送ります。 – L105

+0

素晴らしいです、それは完璧に動作します。助けてくれてありがとう。 – Raoot

1

私はMultiDatesPickerのソースをスキャンしました。 #altfieldから日付を設定する方法はありません。だから、バグではありません。 私はまた、あらかじめ選択された日付とaltfieldの違いを理解していません。

私はあなたが事前選択とaltfieldの組み合わせで、あなたがやりたいことができると思います。

HTML

<div id="with-altField"></div> 
    <input type="text" id="altField" value="08/22/2013,08/21/2013"> 
    </div> 

javascriptの

//first read the values of the #altfield 
var dates = $('#altField').val().split(','); 

//second set your multiDatesPicker with the dates of step 1 and an altfield 
$('#with-altField').multiDatesPicker({ 
    dateFormat: "mm/dd/yy", 
    addDates: dates, 
    altField: '#altField' 
}); 

NB上のJavaScriptを読み込みます書類準備完了

+0

これは私が試した結果と似ています。その結果、ソース表示が正しい値である間にaltFieldが今日の日付で満たされます。 multidatespickerソースには、通常の動作を無効にするものがなければなりません。また、複数の日付を選択する機能も無効になっているようです。 – Raoot

+0

こんにちはライアン、これをチェックしてください:http://jsfiddle.net/YwVA9/1/ –

+0

ああ、私はあなたがそこで何をしているかを見ることができます。私は完全に私のアプリのコードをあなたの例に置き換えましたが、私は同じ動作をしているので、どこかで競合が発生している必要があります。 – Raoot

関連する問題