Korzystam z datepicker interfejsu użytkownika jquery w mojej aplikacji w formie. kiedy zapisuję formularz, pole daty jest pokazane jako zero.
Zainstalowałem klejnot „jquery-ui-rails” i podałem wymaganie jquery ui.all w application.js i application.css
Mój kod wygląda następująco
<div>
<%= f.label :deadline %>
<%= f.text_field :deadline, :id => "datepicker" %>
</div>
W application.js
$(function() {
$( "#datepicker" ).datepicker({
minDate: 0
});
});
Po przesłaniu formularza
Parameters: {"utf8"=>"✓","authenticity_token"=>"aoiDOLAGZHKui85hum7ozJ31QNZopOvmImyOuDyXCw4=", "task"=>{"task"=>"task1", "assigned_to_id"=>"2", "deadline"=>"10/30/2013", "project"=>"", "workspace_id"=>"4"}, "commit"=>"Create", "id"=>"4"}
Włóż w:
INSERT INTO "tasks" ("assigned_to_id", "created_at", "project", "task", "updated_at", "user_id", "workspace_id") VALUES (?, ?, ?, ?, ?, ?, ?) [["assigned_to_id", 2], ["created_at", Mon, 28 Oct 2013 09:51:22 UTC +00:00], ["project", ""], ["task", "task1"], ["updated_at", Mon, 28 Oct 2013 09:51:22 UTC +00:00], ["user_id", 1], ["workspace_id", 4]]
Tutaj nie ma pola terminu. Jest wyświetlany jako zero. Sprawdziłem również schemat sprawdzania pisowni ... wszystko jest w porządku. Jaki może być powód i jak to naprawić. Proszę, pomóżcie mi z tym.
Odpowiedzi:
3 dla odpowiedzi № 1Może to stanowić problem w formacie daty dla bazy danych i został wprowadzony z datepicker
Zmień format daty w datepicker. lubić
$(function() {
$( "#datepicker" ).datepicker({
minDate: 0
dateFormat: "dd-mm-YYYY"
});
});
Lub możesz zmienić format daty w kontrolerze.
Domyślny format daty to data-miesiąc-rok.
Edytować:
W wielu bazach danych domyślnym formatem jest Dd / mm / rrrr
Dlatego musimy podać format daty z naszego selektora dat z tym samym formatem danych.
Ale w JQuery ui datepicker format danych domyślnych to dd/mm/yyyy
który nie jest akceptowalnym formatem dla db. Tak więc wartość nie zapisuje się w db.
Czy musimy podać format daty pola daty jako Dd / mm / rrrr
W jquery datepicker dateFormat: „dd-mm-rrrr” ustawia format daty na taki sam.