web-dev-qa-db-ja.com

jQuery Datepickerは入力値を変更しません

私はJQuery UI DatepickerアドオンをDateTimePickerとして使用しています http://jsfiddle.net/j5rkbnrt/1/

<input id="deliveryTime" name="deliveryTime" type="text" value="08/05/2015 10:00">

 $('#deliveryTime').datetimepicker({
     dateFormat: 'dd/mm/yy',
     timeFormat: 'HH:mm',
 });

DateTimePickerは入力フィールドに関連付けられています。日付を選択すると、入力フィールドの値が変更されません。したがって、この入力を含むフォームを送信すると、常にデフォルト値が取得されます。

デフォルトのjquery datepickerを確認しましたが、これも入力の値を変更しません。 https://jqueryui.com/datepicker/

ここで何が欠けていますか?

8
spike07

インラインvalueattributeを、入力フィールドに含まれる実際の値と混同しています

属性値とは、次のことを意味します。

_<input id="deliveryTime" name="deliveryTime" type="text" value="08/05/2015 10:00">
_

attributeは_value="08/05/2015 10:00"_です。値は、入力フィールドに入力された、選択した日付にすることができます。

したがって、属性が_value="08/05/2015 10:00"_である場合でも、入力の実際の値、つまり入力フィールド内のテキストが実際の値になります。

入力に新しい値を入力して$('#deliveryTime').val()を使用すると、新しい値が入力フィールド内のテキストの実際の値であることがわかります。

入力フィールドのattributeを変更することに熱心である場合、val()はすでにその値を返すため、これはあいまいなものです。次に、以下を実行する必要があります。

_$('#deliveryTime').change(function(){
    $(this).attr('value', $('#deliveryTime').val());
});
_

したがって、「deliveryTimeが変更されるたびに、value属性を入力値に設定します」。 フィドル!

私が言ったように、これはあいまいです。同じ目的を果たすには、$('#deliveryTime').val()を使用することをお勧めします。

11
Rizky Fakkel

うまくいきました!その更新入力の値ですが、chrome devtoolsでは、この更新は表示されません。このフォームを送信してネットワークを確認してください。すべてのデータが正しく送信されていることがわかります。)

0
vladymy

DatetimePickerプラグインの onSelect イベントを使用できます。

 $('#deliveryTime').datetimepicker({
     dateFormat: 'dd/mm/yy',
     timeFormat: 'HH:mm',
     onSelect: function(dateText, inst) {
         $('#'+inst.id).attr('value',dateText);
    }
 });

デモ

0