[ Príspevkov: 21 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 10.11.11
Prihlásený: 04.08.17
Príspevky: 21
Témy: 5 | 5
NapísalOffline : 12.11.2011 11:04 | input - javascript

Poradí mi niekto prosím, ako mám spraviť, aby sa do input text (html) dali zadávať len čísla od 0-9 a čiarka (,), ale tak, aby sa čiarka nedala zadať viac krát za sebou (teda aby medzi čiarkami bolo vždy nejaké číslo). Napr.: 10,1250,140,1250.
Teda, aby nemohol nastať napríklad takýto prípad: 10,1250,,140,1250.
Za rady vopred ďakujem.


Offline

Skúsený užívateľ
Skúsený užívateľ
input - javascript

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14571
Témy: 66 | 66
Bydlisko: Žilina
NapísalOffline : 12.11.2011 11:53 | input - javascript

ideálne tak, že priradíš danému inputu masku cez javascript a ošetríš vstup následne aj v code behinde, aby si mal istotu, že sú dáta v správnom formáte (javascript sa dá kedykoľvek vypnúť!)

tu je napr. pekný zoznam skriptov
http://www.webresourcesdepot.com/javasc ... put-masks/


_________________
C#, PHP, ...
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 10.11.11
Prihlásený: 04.08.17
Príspevky: 21
Témy: 5 | 5
Napísal autor témyOffline : 12.11.2011 13:23 | input - javascript

Dá sa to spraviť s maskou, tak aby som mohol zadávať čísla akejkoľvek dlížky? Napr. 10000000,200,115,0,1,33,20


Offline

Skúsený užívateľ
Skúsený užívateľ
input - javascript

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14571
Témy: 66 | 66
Bydlisko: Žilina
NapísalOffline : 12.11.2011 14:53 | input - javascript

Hmm, keď tak nad tým uvažujem, tak masku v tomto prípade ani nepotrebuješ. Stačí javascriptom pri písaní/po dopísaní kontrolovať vstup a podľa situácie vykonať akciu (napr nepovoliť iné znaky ako 0-9)


_________________
C#, PHP, ...
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 10.11.11
Prihlásený: 04.08.17
Príspevky: 21
Témy: 5 | 5
Napísal autor témyOffline : 12.11.2011 15:58 | input - javascript

Tak konkrétne mám takýto kód. Sú povolené len znaky 0-9 a čiarka. Čo tam mám pridať, aby sa nedala dať čiarka dva krát za sebou, ale len za číslom?

Kód:
   <SCRIPT language=Javascript>
      <!--
      function isNumberKey(evt)
      {
         var charCode = (evt.which) ? evt.which : event.keyCode
         if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 44)
            return false;


         return true;
      }
      //-->
   </SCRIPT>

      <INPUT id="txtChar" onkeypress="return isNumberKey(event)" type="text" name="txtChar">


Offline

Užívateľ
Užívateľ
input - javascript

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127 | 127
Bydlisko: Lehota pod ...
NapísalOffline : 14.11.2011 8:57 | input - javascript

Pridať tam test na regulárny výraz:
patern.test(elem.value)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 10.11.11
Prihlásený: 04.08.17
Príspevky: 21
Témy: 5 | 5
Napísal autor témyOffline : 14.11.2011 9:11 | input - javascript

Vedel by si to tam aj zakomponovať, lebo ja sa v JS moc nevyznám.


Offline

Užívateľ
Užívateľ
input - javascript

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127 | 127
Bydlisko: Lehota pod ...
NapísalOffline : 14.11.2011 13:06 | input - javascript

Toto daj za to prve return false.

patern=/,,/;
if(patern.test(document.getElementById('txtChar').value){ return false; }


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 10.11.11
Prihlásený: 04.08.17
Príspevky: 21
Témy: 5 | 5
Napísal autor témyOffline : 14.11.2011 14:06 | input - javascript

Skúsil som to takto, ale nejde to.

Kód:
<SCRIPT language=Javascript>
      <!--
      function isNumberKey(evt)
      {
         var charCode = (evt.which) ? evt.which : event.keyCode
         if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 44){
            return false;
            patern=/,,/;
            if(patern.test(document.getElementById('txtChar').value){ return false; }
         }


         return true;
      }
      //-->
   </SCRIPT>

      <INPUT id="txtChar" onkeypress="return isNumberKey(event)" type="text" name="txtChar">
 


Offline

Užívateľ
Užívateľ
input - javascript

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127 | 127
Bydlisko: Lehota pod ...
NapísalOffline : 14.11.2011 14:19 | input - javascript

Nie, ten patern patrí do vlastnej if vetvy, nie do tej predošlej. Napísal som, že to máš dať za ten return, ale nenapísal som, že ta máš dopĺňať zátvorky...


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 10.11.11
Prihlásený: 04.08.17
Príspevky: 21
Témy: 5 | 5
Napísal autor témyOffline : 14.11.2011 14:28 | input - javascript

Mohol by si prosím napísať celý ten skript ako to bude vyzerať a tušim tam chýba zátvorka.


Offline

Užívateľ
Užívateľ
input - javascript

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127 | 127
Bydlisko: Lehota pod ...
NapísalOffline : 14.11.2011 14:34 | input - javascript

function isNumberKey(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 44){ return false; }

patern=/,,/;
if(patern.test(document.getElementById('txtChar').value){ return false; }

return true;
}

Možno tam je aj nejaká chyba odo mňa, neskúšal som to...


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 10.11.11
Prihlásený: 04.08.17
Príspevky: 21
Témy: 5 | 5
Napísal autor témyOffline : 14.11.2011 14:49 | input - javascript

Nefunguje to. Ide to tak isto ako predtým.


Offline

Užívateľ
Užívateľ
input - javascript

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127 | 127
Bydlisko: Lehota pod ...
NapísalOffline : 14.11.2011 15:15 | input - javascript

No máš pravdu nefunguje to. Keypress nemá k dispozícii hodnotu, ktorú potrebuješ testovať.

Také najjednoduchšie riešenie by bolo:
Kód:
function isNumberKey(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 44){ return false; }

patern=/,,/;
if(charCode == 44 && patern.test(document.getElementById('txtChar').value+',')){ return false; }

return true;
}

Ale dá sa to ľahko obísť ak nastavíš kurzor na čiarku, ktorá by bola niekde pred koncom reťazca, tak môžeš pridať ďalšiu... Teraz sa mi nechce to riešiť. Asi lepšie by bolo to urobiť ako písal Walter, že po ukončení písania skontoluješ value oproti regulárnemu výrazu a prípadne zabrániš odoslaniu a vypíšeš nejakú hlášku o tom, že si tam našiel dve čiarky za sebou...


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 10.11.11
Prihlásený: 04.08.17
Príspevky: 21
Témy: 5 | 5
Napísal autor témyOffline : 14.11.2011 16:20 | input - javascript

Takže spravil som to takto:

Kód:
function valid(){
   
    if(document.search.wavenumber.value == 'xxxx'){
     
     alert ('Zadali ste nesprávny formát pri zadávaní frekvencie!!!');
     
    return false;
    }
}

<form action = "stranka" method = "post" name = "search" onsubmit="return valid()" >
  <input  type = "text" name = "wavenumber" onkeypress="return isNumberKey(event)" />
  <input class = "submit" type = "submit" name = "submit" value = "Hľadať"/>
</form>


akú podmienku mám dať za xxxx aby sa nedali zadať (,,) a aby nebola na konci zapisu čiarka


Offline

Užívateľ
Užívateľ
input - javascript

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127 | 127
Bydlisko: Lehota pod ...
NapísalOffline : 14.11.2011 16:48 | input - javascript

Máš to myslím blbo. Z kade máš takúto syntax???
Tu si pozri ako sa používa search: http://www.w3schools.com/jsref/jsref_search.asp
Ale odporúčam ti použiť test, tak ako som písal ja, lebo search, alebo match(už neviem) nejako blbne pri interpetácii výrazov...

A regulár bude cca.: /^\d([\d]*|,)\d|\d$/ - čisla oddelené čiarkou, ktorá nemôže byť na začiatku ani na konci. / JE TO BLBO, ESTE TO TREBA DOLADIT.../
Ale teraz budeš musieť testovanie negovať, lebo tento výraz vyhovuje tvaru ktorý potrebuješ...


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 10.11.11
Prihlásený: 04.08.17
Príspevky: 21
Témy: 5 | 5
Napísal autor témyOffline : 14.11.2011 17:02 | input - javascript

ten search to je len názov formulára v html


Offline

Užívateľ
Užívateľ
input - javascript

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127 | 127
Bydlisko: Lehota pod ...
NapísalOffline : 14.11.2011 17:09 | input - javascript

:D
Dobre tak za odmenu to skús s týmto: /^(\d+,)*\d+$/
Takze: if( ! elem.value.test(patern)){ alert('BUBUBU'); }


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 10.11.11
Prihlásený: 04.08.17
Príspevky: 21
Témy: 5 | 5
Napísal autor témyOffline : 14.11.2011 17:39 | input - javascript

Kde to tam mám dopísať? Napíš to prosím ťa do toho skriptu.


Offline

Užívateľ
Užívateľ
input - javascript

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127 | 127
Bydlisko: Lehota pod ...
NapísalOffline : 14.11.2011 19:58 | input - javascript

Kód:
function valid(){
    patern = /^(\d+,)*\d+$/;
    if( ! document.getElementById("wavenumber").value.test(patern)){
     
     alert ('Zadali ste nesprávny formát pri zadávaní frekvencie!!!');
     
    return false;
    }

    return true;
}

<form action = "stranka" method = "post" name = "search" onsubmit="return valid()" >
  <input  type = "text" name = "wavenumber" onkeypress="return isNumberKey(event)" />
  <input class = "submit" type = "submit" name = "submit" value = "Hľadať"/>
</form>


// pridané po 2 hodinách 13 minútach od posledného príspevku

EDIT:
Tak sorry tu je to už ok(ak tam máš ovšem fciu isNumberKey()):
Kód:
function valid(){
    var patern = /^(\d+,)*\d+$/ ;
    if(patern.test(document.getElementById('wave').value)){

       return true;
    }

    alert ('Zadali ste nesprávny formát pri zadávaní frekvencie!!!');
    return false;
}

<form action = "stranka" method = "post" name = "search" onsubmit="return valid()" >
  <input  type = "text" name = "wavenumber" id="wave" onkeypress="return isNumberKey(event)" />
  <input class = "submit" type = "submit" name = "submit" value = "Hľadať"/>
</form>


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 10.11.11
Prihlásený: 04.08.17
Príspevky: 21
Témy: 5 | 5
Napísal autor témyOffline : 15.11.2011 15:49 | input - javascript

ok. vďaka, že si mi s tým pomohol.


 [ Príspevkov: 21 ] 


input - javascript



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

javascript wysiwyg v javascript popup

v Frontend

1

963

25.07.2009 19:29

Ďuri

V tomto fóre nie sú ďalšie neprečítané témy.

input

v Frontend

19

1549

08.03.2008 14:53

shaggy

V tomto fóre nie sú ďalšie neprečítané témy.

Input

v Frontend

1

989

26.02.2008 7:49

sento

V tomto fóre nie sú ďalšie neprečítané témy.

input - checkbox

v Backend

1

462

17.09.2011 21:46

chrono

V tomto fóre nie sú ďalšie neprečítané témy.

input jQuery

v Frontend

5

724

20.07.2010 21:07

walther

V tomto fóre nie sú ďalšie neprečítané témy.

Input file

v Frontend

3

754

28.04.2008 16:37

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

heigth input

v Frontend

5

602

31.01.2009 19:20

jablko05

V tomto fóre nie sú ďalšie neprečítané témy.

input index

v Backend

6

635

05.07.2009 19:42

php30

V tomto fóre nie sú ďalšie neprečítané témy.

input text - zmizne

v Frontend

5

666

22.10.2014 19:05

shaggy

V tomto fóre nie sú ďalšie neprečítané témy.

No video input

v Monitory, televízory a projektory

4

1345

08.12.2018 21:42

tatko Tom

V tomto fóre nie sú ďalšie neprečítané témy.

input s filtrom

v Frontend

4

618

19.12.2009 11:35

djsulo

V tomto fóre nie sú ďalšie neprečítané témy.

spravnost input pola

v Backend

2

451

20.06.2010 15:14

Ďuri

V tomto fóre nie sú ďalšie neprečítané témy.

input automaticke doplnanie

v Frontend

2

564

30.05.2010 15:46

Achtan

V tomto fóre nie sú ďalšie neprečítané témy.

input default hodnota

v Frontend

1

934

28.06.2007 18:17

sento

V tomto fóre nie sú ďalšie neprečítané témy.

Doplňovanie input poľa

v Frontend

2

652

28.08.2008 13:54

tatysp

V tomto fóre nie sú ďalšie neprečítané témy.

input minimalne 3 znaky

v Backend

2

524

08.11.2007 23:33

neopagan



© 2005 - 2026 PCforum, edited by JanoF