Change/replace jquery

PHPportalen Forum Index » HTML/CSS/JavaScript/Design
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
marcusgarden



Medlem i: 2565 dagar

Status: Offline



#741594
Inlägg Skrivet: 2017-04-09 23:18      Ämne: Change/replace jquery Citera

Jag chansar på att detta är rätt forum:)

Jag har ett formulär där man ska ange ett datum, idag är det validerat till åååå-mm-dd, javascript-validering, på något sätt så lyckas man ändå ange annat än just detta mönster:/

Nu hade jag tänkt att det kanske är en bra idé att köra någon typ av change/replace på denna input:)
Kanske med jquery?

Så kort och gott, hur gör jag för att ändra fel input till det jag vill med hjälp av jquery?

T.ex. 24/3-2008 till 2008-03-24
T.ex. 2008-3-24 till 2008-03-24
T.ex. 24/3-08 till 2008-03-24
Etc...
Etc...

Jag har lekt med date.js men får inte till det:/

Vet att jag ska kunna använda
KOD:
1:
var date = new Date('06-01-2004');
2:
var newDate = date.toString('YYYY-MM-DD');

på något sätt men jag får inte till det:/

Tack på förhand!
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Peppe L-G



Medlem i: 3769 dagar
Från: Mullsjö
Status: Offline



#741595
Inlägg Skrivet: 2017-04-10 08:11      Ämne: Citera

Du kan inte lita på att klienterna har JavaScript aktiverat; en användare kan stänga av den funktionaliteten i en webbläsare. För övrigt kan du inte ens lita på att HTTP-förfrågan skickas från en webbläsare; den kan lika gärna komma från en hackare som kan skriva vad han vill i HTTP-förfrågan, så på serversidan måste du ändå kolla ifall det förväntade formatet har använts eller ej.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
harald_b
Moderator



Medlem i: 4026 dagar
Från: Tavesta
Status: Offline



#741597
Inlägget är accepterad som det rätta svaret Skrivet: 2017-04-10 12:15      Ämne: Citera

Datum är ett allmänt trixigt område, i alla fall när det handlar om html och javascript.
Men här har du i alla fall ett fulhack som skriver om vissa former av felinmatningar till det önskade formatet:
KOD:
1:
<input type="date" onchange="
2:
   var d;
3:
   if(d=value.match(/(\d+)\^D(\d+)\D(\d{4})/)) d=new Date(d[3],d[2]-1,d[1]);
4:
   else if(d=value.match(/^(\d{4})(\d{2})(\d{2})/)) d=new Date(d[1],d[2]-1,d[3]);
5:
   else if(d=value.match(/^(\d+)\/(\d+)\-(\d{2})/)) d=new Date(2000+d[3]*1,d[2]-1,d[1]);
6:
   else d=new Date(value);
7:
   d.setHours(12); //för att få UTC-tid och lokal tid att visa samma datum
8:
   value = d.toISOString().slice(0,10);
9:
"/>

Amerikanska datum fungerar dock inte med just den här lösningen.
 

_________________
R.r - Ett fritt affärssystem
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » HTML/CSS/JavaScript/Design
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic