2011-11-20 22 views
6

私のフォームのフィールド - 生年月日のいずれかにjQueryの日付ピッカーを使用しています。jQueryの日付ピッカーが元のテキストの値を表示しない

フィールドはPHPを使用して生成され、ユーザーの元の生年月日が入力されます。フィールドをクリックするとウィジェットが表示されますが、これは完全にうまくいきます。

ただし、ブラウザのソースコードに表示されていても、テキストボックスには元の値は表示されません。私はGoogle Chromeを使用しています。

以下は、jQueryのコードである:

$(function() 
{ 
    $("#DatePicker").attr("readonly","readonly"); 

    $("#DatePicker").datepicker({ 
     changeMonth: true, 
     changeYear: true, 
     yearRange: "1950:+10" 
    }); 

    $("#DatePicker").datepicker("option","dateFormat","dd MM yy"); 
}); 

これはPHPコードである:

echo "<INPUT TYPE=\"TEXT\" NAME=\"$FieldName\" VALUE=\"$OriginalData\" ID=\"DatePicker\" CLASS=\"FullLength\">"; 

そして以下は、(ソースコードからコピーされた)HTMLコードである:

<INPUT TYPE="TEXT" NAME="DateOfBirth" VALUE="18 August 2012" ID="DatePicker" CLASS="FullLength"> 

どうか私に教えてください。ありがとうございました。

+0

通常のjQuery日付ピッカーで試したところ、再生できません。ほとんどの場合、他のコード(サーバー側またはクライアント側のいずれか)が値を上書きしてそれをクリアしている可能性があります。 –

+0

@ShadowWizard:[このデモ](http://jsfiddle.net/z7YJ5/1/)VS [this one](http://jsfiddle.net/z7YJ5/2/)をチェックしてください。それはフィールドをクリアし、別の日付ピッカーを作成するようです。私はおそらく何かを紛失しているだけです(ドキュメントをすばやくチェックしただけです)が、私は実際にOPのコードが動作することを期待していました。あなたが何かを知っているならチャイム、私は興味があります。 –

+0

@Madmartigan良いキャッチは、ダブルデートピッカーの使い方に気付かなかった。コード内でバグのように聞こえる。何度も呼び出されることはない。すべてのオプションは、1回の呼び出しで行う必要があり、害はありません。 –

答えて

4

にテキストボックスのテキストの可視性を設定するためのオプションが彼らであるPHPに関するけどasp.netでわからないようにしてください可能な場合は、次のようにFirefoxとChromeでworked for meをオプションを追加すること

$("#DatePicker").datepicker("option","dateFormat","dd MM yy"); 

試してみてください:

$("#DatePicker").datepicker({ 
    changeMonth: true, 
    changeYear: true, 
    dateFormat: "dd MM yy" 
}); 
+0

ああ、それは働いた。どうもありがとうございました!!!=) –

+0

これは、事前入力された日付を表示するためにのみ機能しますが、新しい日付が選択されたときの形式には表示されません – Graham

1

、その場合は、ブラウザの互換性の問題をチェックするためにFirefoxなどの別のブラウザを使用して、私はなぜわからない真

+0

私の場合は互換性の問題でした。 ChromeやSafariで動作しますが、Firefoxでは動作しません。 – J0ANMM

1

が、このラインは、値をクリアしています入力値を直接設定するのではなく、setDateを使用する必要があります。

$("#birthday").datepicker() 
.datepicker("option", "dateFormat", 'dd.mm.yy') 
.datepicker('setDate', '<?= $humanoid->getBirthday()->format('d.m.Y') ?>'); 
+0

これは正常に動作するものです。 – Graham

0

ニックの答えに基づいて、これは私は受け入れ答えは半分しか問題を解決し、それは「すべてのjavascript」

$(".popup-date").each(function(){ 
    var ele = $(this); 
    var v = ele.val(); 
    ele.datepicker().datepicker("option", "dateFormat", "dd-M-yy").datepicker("setDate", v); 
    }); 

で動作するようになった方法です。値は表示されますが、日付ピッカーによって選択された後の日付の形式は間違っています。

私の例では、最終的に動作するコードをコピーしたときとは異なる日付形式(例:2014年1月9日)を使用しています。私はまた、要素と価値を得ることにそれを分解しなければならなかった。

関連する問題