Avatar billede FMS2015 Nybegynder
09. december 2015 - 20:17 Der er 24 kommentarer

Tilføjelse til brugernavn ved submit og reset af form

Hej Eksperter,

Jeg har denne stump kode til vores medarbejdere så de kan logge ind fra vores hjemmeside:

----
<br /><br /><form name="form1" method="post" target="_blank" action="https://www.deltaplan.dk/deltaplan_route/index_continue.php" onSubmit="window.open('', 'deltaplan_login', 'location=no,toolbar=no,status=no,menubar=no,width=780,height=580,scrollbars=yes,resizable=yes'); this.target = 'deltaplan_login'">
                            <p><label>Brugernavn:</label> <input type="text" name="username" size="16" maxlength="16" value=""></p>
                            <p><label>Adgangskode:</label> <input type="password" name="password" size="16" maxlength="16"></p>
                            <p><label>&nbsp;</label> <input class="envor-btn envor-btn-normal envor-btn-primary" type="submit" name="submit_login" value="Log ind"> </p>
                        </form>
---

Da vores vagtplan system har en del år på bagen er vi løbet ind i lidt problemer med at systemet ikke kan håndtere samme brugernavn for alle virksomheder som bruger det, og da en stor del af medarbejderne freelancer forskellige steder giver det lidt bøwl.

Derfor er vi begyndt at tilføje "OST-" foran alle brugernavne, men for at gøre det lettere for vores personaler vil vi gerne have det automatisk indsat.


Det andet spørgsmål er hvordan vi får resat formen efter at der er klikket på submit-knappen uden at det "ødelægger" login processen i popuppen.


Jeg ser frem til at høre fra jer :)

//Mark
Avatar billede jakobdo Ekspert
09. december 2015 - 22:55 #1
Nummer 1:
<input type="text" name="username" size="16" maxlength="16" value="OST-">

Nummer 2:
Efter din onSubmit="...." kunne du vel tilføje:

, document.getElementById("form1").reset();

Dog skal du nok lige tilføje id="form1" på formen.

Dette er ganske utestet, men håber det kan give dig lidt ideer.
Avatar billede FMS2015 Nybegynder
11. december 2015 - 11:55 #2
Hvis vi nu skal lande med et færdigt script, tror du evt det kan lade sig gøre for f.eks. 300,- på mobile pay?
Avatar billede jakobdo Ekspert
11. december 2015 - 12:38 #3
Prøv en kode ala dette: https://jsfiddle.net/7y9x5mna/

Og virker det, kan du jo sende en tak til: 24613112
Avatar billede FMS2015 Nybegynder
11. december 2015 - 12:51 #4
Det ser ud til at vi bevæger os i den rigtige retning, men jeg kunne godt tænke mig at "OST-" var skjult og automatisk blev indsat?
Avatar billede jakobdo Ekspert
11. december 2015 - 13:18 #5
hvad med noget ala denne: http://jsbin.com/guxomeqoju/edit?html,js,output

jsfiddle drillede mig, så skiftede til jsbin
Avatar billede FMS2015 Nybegynder
11. december 2015 - 13:52 #6
Jeg kan ikke lige få det til at virke ...

Jeg har oprettet et demo login:

USER: ost-jacob
PASS: eksperten

...beklager så ikke lige det var med K :)
Avatar billede jakobdo Ekspert
11. december 2015 - 15:11 #7
SE nu: http://jsbin.com/vodaraluhe/edit?html,js,output

Der manglede: cam_username på "input" brugernavn NAME.
Avatar billede FMS2015 Nybegynder
11. december 2015 - 17:03 #8
Det virker super i firefox men i saferi virker det ikke?
Avatar billede FMS2015 Nybegynder
11. december 2015 - 17:57 #9
Og kan du samle scriptet så det ligger sammen med HTML'en? ...det skal nemlig indsættes i et wordpress site.
Avatar billede jakobdo Ekspert
11. december 2015 - 18:14 #10
Hvad så med denne:

http://jsbin.com/jameqobebi/edit?html,js,output

Det er så et "lille" hack.
Den nulstillet først efter noget tid.
Men vi snakker ½ sekund, så det bør ikke betyde noget.

Har lige testet, den virker både i chrome og safari.
Avatar billede FMS2015 Nybegynder
12. december 2015 - 10:11 #11
<form id="myForm" method="post" target="_blank" action="https://www.deltaplan.dk/deltaplan_route/index_continue.php">
          <div class="form-group">
            <label for="username">Brugernavn</label>
            <input type="text" class="form-control" id="username" name="cam_brugernavn" placeholder="Brugernavn" maxlength="16">
          </div>
          <div class="form-group">
            <label for="password">Adgangskode</label>
            <input type="password" class="form-control" id="password" name="password" placeholder="Adgangskode" maxlength="16">
          </div>
          <button type="submit" class="btn btn-default" name="submit_login">Log ind</button>
        </form>
      </div>
    </div>

    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <!-- Latest compiled and minified JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
    <script>
    function resetForm(){
      //Clear form
      $("#myForm").each(function(){
        this.reset();
      });
    }

    $(function(){
      $("#myForm").submit(function(event){
        // Add prefix to username
        var prefix = "OST-";
        $("#username").val(prefix + $("#username").val());

        //I DONT GET THIS LINE!!!
        //Popup
        //window.open('', 'deltaplan_login', 'location=no,toolbar=no,status=no,menubar=no,width=780,height=580,scrollbars=yes,resizable=yes'); this.target = 'deltaplan_login';

        t = setTimeout("resetForm()", 200);
      });
    });
    </script>

Linjen du har taget ud er for at der bliver åbnet et popup vindue.

kan man tage noget af dette ud (skære ind til benet):
    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <!-- Latest compiled and minified JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
Avatar billede jakobdo Ekspert
12. december 2015 - 10:22 #12
Ja, det eneste du behøver er JQUERY, resten er bare for sjov.
Avatar billede jakobdo Ekspert
12. december 2015 - 10:47 #13
Dette bør være nok:

<form id="myForm" method="post" target="_blank" action="https://www.deltaplan.dk/deltaplan_route/index_continue.php">
<label for="username">Brugernavn</label>
<input type="text" class="form-control" id="username" name="cam_brugernavn" placeholder="Brugernavn" maxlength="16">
<label for="password">Adgangskode</label>
<input type="password" class="form-control" id="password" name="password" placeholder="Adgangskode" maxlength="16">
<button type="submit" class="btn btn-default" name="submit_login">Log ind</button>
</form>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
function resetForm(){
  //Clear form
  $("#myForm").each(function(){
    this.reset();
  });
}

$(function(){
  $("#myForm").submit(function(event){
    // Add prefix to username
    var prefix = "OST-";
    $("#username").val(prefix + $("#username").val());
    //I DONT GET THIS LINE!!!
    //Popup
    window.open('', 'deltaplan_login', 'location=no,toolbar=no,status=no,menubar=no,width=780,height=580,scrollbars=yes,resizable=yes'); this.target = 'deltaplan_login';

    t = setTimeout("resetForm()", 200);
  });
});
</script>

Så skal du lige huske at style...
Avatar billede jakobdo Ekspert
12. december 2015 - 10:47 #14
DU kan også fjerne:

2 x class="form-control"
og
class="btn btn-default"
Avatar billede jakobdo Ekspert
15. december 2015 - 09:00 #15
Fik du testet det ?
Avatar billede FMS2015 Nybegynder
15. december 2015 - 11:16 #16
Jeg får faktisk nogle fejl ...jeg kan ikke indlæse denne linje uden siden går i fejl:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>

Jeg har prøvet at indsætte uden og resultatet ser sådan her ud:
http://guard.dk/intranet/


Det er "Sjælland" hvor jeg anvender din kode... Jeg kan dog stadig ikke få det til at virke under firefox uden din stump kode.

Selve popup'en virker ikke som den "plejer" prøv oven over.


Jeg har ændret login kriterierne:
USER: GUARD-jacob
PASS: test123

Lidt hjælp :)

...og husk det hele bliver indsat som en "widget" i wordpress :)
Avatar billede jakobdo Ekspert
15. december 2015 - 11:26 #17
Prøv at erstat $ med jQuery

Så det bliver noget ala:

<script>
function resetForm(){
  //Clear form
  jQuery("#myForm").each(function(){
    this.reset();
  });
}

jQuery(function(){
  jQuery("#myForm").submit(function(event){
    // Add prefix to username
    var prefix = "OST-";
    jQuery("#username").val(prefix + $("#username").val());
    //I DONT GET THIS LINE!!!
    //Popup
    window.open('', 'deltaplan_login', 'location=no,toolbar=no,status=no,menubar=no,width=780,height=580,scrollbars=yes,resizable=yes'); this.target = 'deltaplan_login';

    t = setTimeout("resetForm()", 200);
  });
});
</script>

Og tror du kan skippe jquery, den ser allerede ud til at være loadet.
Avatar billede FMS2015 Nybegynder
15. december 2015 - 19:47 #18
Det kan jeg sgu ikke få til at virke :(
Avatar billede FMS2015 Nybegynder
15. december 2015 - 19:51 #19
en lille test viste at den ikke anvender prefix :)
Avatar billede jakobdo Ekspert
16. december 2015 - 10:57 #20
Det er jo svært at udvikle noget, som virker i et miljø og ikke et andet. :o)

Er det nu i alle browsere den ikke virker ?
Avatar billede FMS2015 Nybegynder
17. december 2015 - 16:23 #21
ja :)
Avatar billede jakobdo Ekspert
17. december 2015 - 20:49 #22
Men er vi ikke enige om at koden direkte i jsfiddle/jsbin virkede fint nok ?
Avatar billede FMS2015 Nybegynder
18. december 2015 - 14:13 #23
Jo men kan vi ikke se om det er muligt at få det til at virke i det miljø det skal anvendes?
Avatar billede jakobdo Ekspert
18. december 2015 - 14:22 #24
Jo, hvis jeg på en eller anden måde kan få adgang til det.
Ellers ved jeg jo ikke om der er en masse fejl i console eller hvor kæden hopper af. :o)
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