0

1 ページの 3 つのフォームにまたがる 3 つの日付フィールドがあります。各日付フィールドはブートストラップ日付ピッカーを使用します。各フィールドは生年月日であるため、いずれかが変更されるたびに 3 つすべてが更新されます。

これはすべて、FF、Chrome などで完全に機能します。

ただし、IE8/7 に到達すると、datepicker は入力フィールドをクリアする代わりに、新しい値をカンマ区切りのリスト スタイルで連結します。multidate: false を使用してみました (デフォルトですが) が、効果はありません。

何か案は ?

これがフィドルです:http://jsfiddle.net/moonspace/xaH2n/

コードは次のとおりです。

// Set default value
$("#oneDate").val("01/01/1990");
$("#twoDate").val("01/01/1990");
$("#threeDate").val("01/01/1990");

var defaultDate = "25/12/1990";

// Set up datepicker
$("#oneDate, #twoDate, #threeDate").datepicker({
    format: "dd/mm/yyyy",
    startDate: "-89y",
    endDate: "-17y",
    startView: 2,
    autoclose: true,
    orientation: "top left"
}).on("changeDate", function() {
    var newDoB = $(this).val();

    $("#oneDate").datepicker("update", newDoB);
    $("#twoDate").datepicker("update", newDoB);
    $("#threeDate").datepicker("update", newDoB);
});

// Reset value
$("button").on("click", function() {
    $("#oneDate").datepicker("update", defaultDate);
    $("#twoDate").datepicker("update", defaultDate);
    $("#threeDate").datepicker("update", defaultDate);
}); 

ヒント: IE でフィドルを実行するには、chrome/FF でアカウントにログインし、フィドルを開いてください。次に、IE でhttp://jsfiddle.net/draftにアクセスしてログインすると、fiddle が表示されます。

4

1 に答える 1

0

問題は実際には Internet Explorer にあります。

Internet Explorer の splice 関数は、Firefox や Chrome と同じように機能するために、実際には追加のパラメーターを必要とします。 IE <= 8 .splice() が機能しない

含まれているbootstrap-datepicker.jsコードを見ると

this.splice(0);

したがって、解決策は、更新された修正プログラム (リリースされていない:/) を使用して bootstrap-datepicker のマスター ブランチを取得することです:/) https://github.com/eternicode/bootstrap-datepicker/blob/master/js/bootstrap-datepicker .js

また

javascript http://www.to-string.com/2012/05/29/fixing-splice-in-older-versions-of-internet-explorer-を介して Internet Explorer で splice(0) 関数がどのように機能するかを「修正」し ます。 8歳以上/

于 2014-11-26T05:14:05.993 に答える