Avatar billede dannv Nybegynder
30. november 2004 - 12:56 Der er 9 kommentarer og
1 løsning

Form validering forskel på id og name

Jeg har en form med et variabelt antal text felter. Disse text felter vil jeg gerne have lavet validering af input.

Men først lige et spørgsmål: Er der forskel på attributten id og name - (og hvad)??

Et typisk text felt kunne se således ud:

<input type="text" id="numeric" name="field_id53,363,%,X,numeric" value"100">

(kan jeg her benytte forskelligt id og name....??)

Jeg vil lave en funktion som tager alle text felter med id="numeric", og finder ud af om der kun står tal heri!!
Avatar billede fennec Nybegynder
30. november 2004 - 14:16 #1
Reglen er at id skal være unikt. Der må altså ikke være flere elementer der har samme id. Navnet behøver ikke være unikt. JavaScript funktionerne er også tilpasset denne grund-tanke.

document.getElementById('etID') <-- Henter kun ET element
document.getElementsByName('etNavn') <-- Henter en collection af alle elementer der hedder etNavn.
Avatar billede dannv Nybegynder
30. november 2004 - 14:48 #2
OK, det jeg ville var at løbe alle id's igennem og hvis id=numeric, ville jeg tjekke om value var numerisk! Men det kan jeg så ikke!!

Kan jeg istedet tage strengen efter det sidste komma i name(..og hvordan..)??

ex name="field_id53,363,%,X,numeric" => så jeg får 'numeric' ud af det???
Avatar billede thomas_yde Nybegynder
30. november 2004 - 14:58 #3
Hvad er det du gerne vil opnå ?
at folk ikke kan skrive andet end tal i den ?

Så skal du have fat i validate onKeyDown="return validate(this);" onKeyUp="return validate(this);" så skal du evaluer om det der er trykket er lovligt.


så kan du valider om det der
Avatar billede thomas_yde Nybegynder
30. november 2004 - 14:59 #4
den sidste sætning havde puttet sig, den skal der ses bort fra.
Avatar billede dannv Nybegynder
30. november 2004 - 15:00 #5
Ja noget i den retning.

Feltet skal opfylde følgende:

- Det må gerne være tomt,
- Der må kun indtastes tal
- Tallet kan være både positiv og negativ
- decimal seperator = .
Avatar billede dannv Nybegynder
30. november 2004 - 15:01 #6
onKeyDown og up... tester lige...
Avatar billede dannv Nybegynder
30. november 2004 - 22:30 #7
Jeg har en metoder som jeg pt. benytteter til form validering et andet sted. Den havde jeg regnet med at kunne benytte... men ak nej... den giver fejl!

this giver her .. hvad??

Kan du/I give et eksempel som jeg kan benytte...??
Avatar billede dannv Nybegynder
01. december 2004 - 07:11 #8
Nå jeg har surfet lidt of fundet onBlur som jeg tror er en bedre løsning

Eksemplet giver:

<input name="i1" type="text" value="" onclick="return false;"
      onBlur="isit(pass.i1.value,'STOP'); return true;">

og funktionen:

function isit(inputval,expectedval) {
  if (inputval != expectedval) {
      alert('You must enter the word '+ expectedval);
      } else {alert('ok');}
  }


JEG HAR:
<input type="text" name="field_id53,363,%,X,numeric" value"">

og en funktion:

function isNegPosNumber(str)
{
  var pattern = "0123456789.-"
  var i = 0;
  do {
    var pos = 0;
    for (var j=0; j<pattern.length; j++)
      if (str.charAt(i)==pattern.charAt(j)) {
        pos = 1;
        break;
      }
    i++;
  } while (pos==1 && i<str.length) 
  if (pos==0)
    return false;
  return true;
}

Kan i hjælpe med at lave en hybrid mellem disse to, så jeg for valideret mit felt på en onblur event, og bruger min funktion.... jeg kan overhovedet ikke få det til at fungerer....
Avatar billede dannv Nybegynder
01. december 2004 - 07:18 #9
navnet på min form er 'result'
Avatar billede dannv Nybegynder
01. december 2004 - 13:50 #10
opretter et nyt spørgsmål med en lidt ændret problem stilling!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester