Javascript cursor vraag

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Stefan WM

Stefan WM

07/09/2012 17:02:40
Quote Anchor link
Heren,

Ik zit met een uitdaging!
Namelijk het volgende, ik hebt een text input field die middels javascript steeds geupdate wordt.
De reden is dat er na elke letter een punt moet komen. Echter als men nu bijvoorbeeld A.D. heeft ingevuld en er A.B.C.D. van wilt maken zal hij na het invullen van de B de cursor weer achteraan plaatsen met als resultaat A.B.D.C.

Hoe ga ik dit tegen?

Groeten,
Stefan
 
PHP hulp

PHP hulp

25/11/2024 14:43:56
 
Wouter J

Wouter J

07/09/2012 17:05:35
Quote Anchor link
Dan zullen we eerst je scriptje moeten zien, mij zegt dat er iets mis is... Hoe ik het zou doen: http://jsbin.com/ahuceq/1/edit
 
Stefan WM

Stefan WM

10/09/2012 09:39:18
Quote Anchor link
Er is niks mis en het voorbeeld wat jij geeft is nog erger als wat ik al heb.
Probeer maar eens wat ik zei, a.d. en dan b en c er tussen te typen. hij plaatst de punten dan achter elkaar en de c komt er niet tussen.

ps. sorry voor de late reactie
 
Frank WD

Frank WD

10/09/2012 10:00:46
Quote Anchor link
Voorbeeld van Wouter kan in jou ogen slechte zijn.
Maar Wouter post ten minste nog een code, deze code zie ik bij jou nog steeds niet.

Als je geholpen wilt worden zou je relevante code moeten posten.
Want PHPHulp.nl heeft helaas nog geen herder zienden in dienst genomen.
Gewijzigd op 10/09/2012 10:01:03 door Frank WD
 
Kris Peeters

Kris Peeters

10/09/2012 11:44:18
Quote Anchor link
Ik vind het sowieso geen goed idee dat je manipulaties uitvoert op een <input> terwijl de gebruiker er in typt. Dat verschillende browsers wat vreemde dingen doen, vind ik nogal normaal.

Stefan van den Broek op 07/09/2012 17:02:40:
De reden is dat er na elke letter een punt moet komen.


Moet dat echt gebeuren in die <input>, terwijl er getypt wordt? Het is geen probleem om die punten er automatisch bij te zetten in php, bij de submit verwerking.

Ofwel toon je, tijdens het typen, het resultaat in een <span>, zodat je al ziet wat er zal gebeuren.

Of zoiets van oplossing.
Lijkt je dit aanvaardbaar?
 
Eddy E

Eddy E

10/09/2012 11:52:45
Quote Anchor link
Lijkt mij persoonlijk veel beter.

Type eens (door lang ingedrukte houden): aaaaaaaaaaaaaaaaaaaaaaaaap.
Twee punten..
 
Kris Peeters

Kris Peeters

10/09/2012 12:17:18
Quote Anchor link
Ik heb toch eens vlug geprobeerd.
Dit werkt in Chrome. De kans is vrij groot dat het in de meeste browsers niet zal werken

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    $(document).ready(function($) {
      var inputje = $('#inputje');
      inputje.keypress(function(e) {
        var position = inputje[0].selectionStart; // positie begin van de selectie => komt overeen met de cursor, indien er geen selectie is
        var inputValue = inputje.val();
        var begin = inputValue.substr(0, position);
        var end = inputValue.substr(position);
        e.preventDefault();  // tegenhouden dat de letter op scherm komt
        
        inputje.val(    // nieuwe waarde wordt:
          begin
          + String.fromCharCode(e.keyCode) + '.'
          + end
        );
        // cursor terugzetten, op de plaats na de nieuwe letters
        inputje[0].selectionStart = position + 2;
        inputje[0].selectionEnd   = position + 2;
      });
    });


Het lijkt me wel doenbaar om dit cross browser te laten werken, maar ik blijf het een slecht idee vinden
 
Stefan WM

Stefan WM

10/09/2012 12:44:51
Quote Anchor link
Kris Peeters op 10/09/2012 11:44:18:
Ik vind het sowieso geen goed idee dat je manipulaties uitvoert op een <input> terwijl de gebruiker er in typt. Dat verschillende browsers wat vreemde dingen doen, vind ik nogal normaal.

Stefan van den Broek op 07/09/2012 17:02:40:
De reden is dat er na elke letter een punt moet komen.


Moet dat echt gebeuren in die <input>, terwijl er getypt wordt? Het is geen probleem om die punten er automatisch bij te zetten in php, bij de submit verwerking.

Ofwel toon je, tijdens het typen, het resultaat in een <span>, zodat je al ziet wat er zal gebeuren.

Of zoiets van oplossing.
Lijkt je dit aanvaardbaar?


Dat is dus het probleem, de klant wilt het op de wijze die ik omschreef.. en staat er op dat de code niet online komt.

Als het voor me zelf was had ik het er al lang op gezet! Ik snap dat het lastig is echter wat Wouter plaatste lijkt heel veel op wat ik heb.
 
Kris Peeters

Kris Peeters

10/09/2012 12:56:37
Quote Anchor link
Stefan van den Broek op 10/09/2012 12:44:51:
... en staat er op dat de code niet online komt. ...


Welke code?
De broncode van die functie? Dan zit je sowieso verkeerd met javascript.
javascript is openbaar.
 
Wouter J

Wouter J

10/09/2012 13:36:49
Quote Anchor link
Waarom zou je niet de JavaScript functie online mogen zetten? JIJ maakt dat scriptje toch en ze hebben er toch geen patent op? Anders kun je meteen wel stoppen...
 
Kris Peeters

Kris Peeters

10/09/2012 14:18:03
Quote Anchor link
Ik weet niet wie die klant is en wat je relatie ermee is; laat me dit een veralgemening noemen:

een klant is meestal niet de best-geplaatste speler om te weten wat goed voor hem is.
Daarom heeft hij ook de diensten van een specialist ingehuurd.


Ik zal een tandarts niet vertellen hoe hij zijn boor moet vasthouden, noch welk materiaal een houthakker nodig heeft om een boom om te zagen/hakken.

De verhouding klant<->specialist is er één waarbij de klant een visie heeft over het eindresultaat. Dan kunnen beide partijen samen afspreken hoe ze dit willen realiseren.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.