Avatar billede flim Nybegynder
22. april 2003 - 12:08 Der er 17 kommentarer og
1 løsning

Enable - disable

Hej derude...

Jeg har en knap, som jeg gerne vil have disabled indtil man har skrevet noget i et felt, hvorefter den så skal være enabled.

Jeg har i øjeblikket følgende:

function sendForm(inputForm) {
    if (!checkMail(inputForm.afsenderMail.value)) {
        alert('Du skal indtaste korrekt e-mail');
        return;
        }
                }

Dette virker sådan set fint nok, hvor at der kommer en boks op hvis der ikke er indtastet korrekt e-mail.

Kan man så ikke lave ens send knap disabled, indtil der er indtastet en korrekt e-mail, hvorefter den så skal blive enabled?

På forhånd tak. Mvh Bo
Avatar billede psycko Nybegynder
22. april 2003 - 13:07 #2
Er helt ny her. Skal det være svar, før man kan få point?. Eller er det lige meget??
Avatar billede fritz-79th Nybegynder
22. april 2003 - 13:08 #3
function disable(textfield, but){
    if (!document.forms[0].elements[textfield].value){
        document.forms[0].elements[but].disabled = true
    }
    else {
        document.forms[0].elements[but].disabled = false
    }
}

<form name="form1" method="post" action="">
  <input type="text" name="textfelt"  onKeyDown="disable('textfelt', 'Send');">
  <input type="submit" name="Send" value="Submit" disabled>
</form>

Og så valider inholdet af "textfelt" når du submitter


mvh/
Avatar billede fritz-79th Nybegynder
22. april 2003 - 14:20 #4
Eller......


function emailvali(textfelt, but){
  if (document.forms[0].elements[textfelt].value.indexOf ('@',0) == -1 ||
      document.forms[0].elements[textfelt].value.indexOf ('.',0) == -1)
    {
    document.forms[0].elements[but].disabled = true
    }
    else
    {
    document.forms[0].elements[but].disabled = false
    }
}

<form name="form1" method="post" action="">
  <input type="text" name="textfelt"  onKeyDown="return emailvali('textfelt','Send');">
  <input type="submit" name="Send" value="Submit" disabled>
</form>
Avatar billede olebole Juniormester
22. april 2003 - 15:09 #5
<ole>

Eller en del mere 'sexy':

function emailvali(t, f){
  if (t.value.indexOf('@') == -1 || t.value.indexOf('.') == -1) {
    f.Send.disabled = true;
  } else {
    f.Send.disabled = false;
  }
}

<form name="form1" method="post" action="">
  <input type="text" name="textfelt" onKeyUp="return emailvali(this, this.form);">
  <input type="submit" name="Send" value="Submit" disabled>
</form>

/mvh
</bole>
Avatar billede Slettet bruger
22. april 2003 - 15:26 #6
Men det kan skam blive sexier endnu! :)

<form name="form1" method="post" action="">
  <input type="text" name="textfelt" onKeyUp="this.form.Send.disabled = (this.value.indexOf('@') == -1 || this.value.indexOf('.') == -1);">
  <input type="submit" name="Send" value="Submit" disabled>
</form>

Så behøver du slet ikke nogen funktion.
Avatar billede olebole Juniormester
22. april 2003 - 15:29 #7
Men koden bliver clogged med funktionalitet ... det er ikke videre 'sexy' efter min mening - og da også den stik modsatte retning man bevæger sig hos W3C.
Men der er selvfølgelig også folk, der er til fletninger under armene, så deeeeeeeeeet ........  ;o)
Avatar billede Slettet bruger
22. april 2003 - 15:31 #8
Eftersom det er så få tegn, vil jeg sige, det er meget sexier at gå lige til øllet end at tage den store omvej! :)
Avatar billede olebole Juniormester
22. april 2003 - 15:46 #9
Tjahhhh ......... snup bare en håndbajer - hvis jeg til gengæld må have lov at beholde mit elegante, langstilkede glas med perlende, kølig årgangschampagne  ;o)
Avatar billede Slettet bruger
22. april 2003 - 15:47 #10
Champagne kan jeg nu godt klare. Så længe det er på dåse! :)
Avatar billede olebole Juniormester
22. april 2003 - 15:57 #11
Årrrhhhhhhh ........ man skal zq da osse forklare dig _alt_ ...!!!
Champagne _med_ dåse er godt.
Champagne _på_ dåse er plat.
*LooooL*
Avatar billede olebole Juniormester
22. april 2003 - 15:58 #12
Ved nærmere eftertanke, kan champagne på dåse nu også være helt OK  ;o)

SÅ, OLE ...!!!
Avatar billede fritz-79th Nybegynder
22. april 2003 - 16:09 #13
Der er da vist en der har siddet en anelse for længe i solen i dag ;]
Avatar billede flim Nybegynder
25. april 2003 - 10:07 #14
Ok, jeg har fået det til at virke nogenlunde...

Men allerede når man indtaster sidste punktum i ens e-mail adresse, så bliver feltet disabled, og det er jo ikke ensbetydende at man har skrevet en koretk email. HVis jeg fx skriver XX@x. så vil den allerede her godkende e-mailen. Kan det ikke ordnes?

Og så lige en ting mere. Jeg har en e-mail form, hvor man også kan indtaste navn og besked. Kan man ikke lave så længden af disse felter skal være større end 0, før knappen bliver disabled?

På forhånd tak
Avatar billede flim Nybegynder
25. april 2003 - 10:17 #15
Ok, det med længden har jeg nu fundet ud af... length==0 - osv.

Men det med e-mail adressen er ikke så godt. Kan man ordne så der min skal være to karakterer efter punktum, før den bliver enabled?
Avatar billede fritz-79th Nybegynder
25. april 2003 - 14:13 #16
Vi udvidder oles sexy funk - function!
Husk nu at der er et hav af forskellige muligheder for at validere en email. Og denne tager ikke højde for alt.

function emailvali(t, f){
    var str = t.value;
    var slut = str.substring(str.length -2, str.length - 3);
  if (t.value.indexOf('@') == -1 || t.value.indexOf('.') == -1 || slut != '.') {
    f.Send.disabled = true;
  } else {
    f.Send.disabled = false;
  }
}
Avatar billede olebole Juniormester
25. april 2003 - 14:33 #17
Nu skal vi jo passe på, vi ikke ender i det rene porno-site - men man kan også skrive:

function emailvali(t, f){
    var str = t.value;
    var slut = str.substring(str.length -2, str.length - 3);
    if(!t.value.match(/^[^\.]?[\w\.-]+@[^\.]?[\w\.-]+\.[A-Z]{2,4}$/i)) {
        f.Send.disabled = true;
    } else {
        f.Send.disabled = false;
    }
}

Håber ikke, det er for stærkt for sarte sjæle  ;o)
/mvh
Avatar billede olebole Juniormester
25. april 2003 - 14:34 #18
Hov ... blot:

function emailvali(t, f){
    if(!t.value.match(/^[^\.]?[\w\.-]+@[^\.]?[\w\.-]+\.[A-Z]{2,4}$/i)) {
        f.Send.disabled = true;
    } else {
        f.Send.disabled = false;
    }
}
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