NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
asoft
Člen
Avatar
asoft:25.1.2017 16:19

Ahoj.
Potrebujem v html5 (asp.net mvc) v dátume doplniť rok.
Užívateľ zadá len deň a mesiac a po opustení poľa potrebujem doplniť aktuálny rok.
Napr. užívateľ zadá: 01.01 a doplním 2017
V podstate nič komplikované, ale vo funkcii blur neviem
zistiť deň + mesiac, ktoré zadal užívateľ, pretože $(this).val()) je prázdny.
@Html.EditorFor(mo­del => model.Datum,
new
{
htmlAttributes = new
{
@id = "Datum",
@class = "form-control",
}
})

<script language="javas­cript" type="text/ja­vascript">
$(document).re­ady(function () {
$("#Datum").on("blur", function (event) {
if ($(this).val()) {
//tu mi vracia prázdny reťazec, potrebujem den + mesiac

});
});

 
Odpovědět
25.1.2017 16:19
Avatar
Martin
Člen
Avatar
Odpovídá na asoft
Martin:25.1.2017 17:27

new Date($(this).val()) niečo také by malo fungovať
Ale ak používaš nejaký plugin tak si pozri dokumentaciu

Ešte môže byť problém v evente blur ja skôr používam event change...

 
Nahoru Odpovědět
25.1.2017 17:27
Avatar
asoft
Člen
Avatar
Odpovídá na asoft
asoft:25.1.2017 19:30

Vyzerá to tak, že v JS neviem zachytiť dátum, ktorý nie je správne vyplnený, napr. v tvare 01.01.RRRR
Stále prebára hodnotu dátumu ako prázdny reťazec - invalid date.
Skúšal som aj blur, aj change aj všeličo iné aj
new Date($(this).val())
Ešte ma napadá či to nie je preto, že v triede definujem tento datum nasledovne:

[Display(Name = "Dátum:")]
[DataType(DataType.Date, ErrorMessage = "Nesprávny formát dátumu")]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime? Datum { get; set; }
 
Nahoru Odpovědět
25.1.2017 19:30
Avatar
Martin
Člen
Avatar
Odpovídá na asoft
Martin:25.1.2017 19:49

@Html.EditorFor <- toto vygeneruje <input type='date' /> alebo textareu ?
to že to nevieš zachytiť pomocou js nechápem skús tu hodiť vygenerový html kód

 
Nahoru Odpovědět
25.1.2017 19:49
Avatar
asoft
Člen
Avatar
Odpovídá na Martin
asoft:25.1.2017 20:44

Vygeneruje
<input type='date' />

<input class="text-box single-line" data-val="true" data-val-date="The field Dátum: must be a date." id="Datum" name="nejakymodel.Datum" type="date" value="">

Asi sa mu nepáči, že nie je dodržaný formát: "{0:yyyy-MM-dd}", pretože yyyy je prázdne.
"Change" ani nespustí, pokiaľ nie je dátum validný, "blur" spustí, ale ak je dátum správny, tak aj v "blur" je správna hodnota, ale ak je dátum nie validny, tak v "blur" je hodnota: ""

Celý input berie ako celok, a "change" ani nezareaguje, ak vyplním len den a mesiac, ale rok nie.
Pozeral som na rôznych fórach, a tam to riešili cez .datapicker

 
Nahoru Odpovědět
25.1.2017 20:44
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.