Autor Zpráva
turnhofer
Profil
Ahoj, prosím o pomoc,
potřebovala bych, aby java script smazal poslední písmeno z formuláře pomocí tlačítka.
Zní to třeba nelogicky, ale nemůže se použít tlávesnice či myš, jedná se o pomůcku pro pacienty.
Byl by někdo ochoten pomoci?

Část js, co zatím nefunguje:
<script>
$('.mazadlo').click(
        function(){
            var inputString = $('#text').val();
                var shortenedString = inputString.substr(0,(inputString.length -1));
            $('#text').val(shortenedString);
            return false;
        });
 </script>
Vloženo v html:
[pre]
<div class="platno">
<textarea style id="txt" type="text" width="500" height="200" background-color="black" font="40" name="disabled-keyboard--input" value="Field with disabled keyboard" data-disable-touch-keyboard></textarea>
<div id="ovladace">

<form>
<a href="#" title=""><input type="submit" value="<<" class="mazadlo"></a>
</form>
</div>
Moc děkuji
blaaablaaa
Profil
turnhofer:

Kromě nesmyslů v html (background-color, font, ...) je hlavní chyba použití #text, když textarea má id="txt", má být tedy #txt.
$('.mazadlo').click(function(e){
  e.preventDefault();
  var inputString = $('#txt').val();
  if ( !inputString.length ) return;
  $('#txt').val( inputString.substr(0,(inputString.length -1)));
});
<textarea id="txt"></textarea>
<input type="button" value="<<" class="mazadlo">
turnhofer
Profil
Děkuji, vyzkouším doma (cca v osm). Byl bys event. ochoten pomoci víc kdyby to zlobilo? Počítám s tím, že bych to zaplatila, je to moc důležitý. Děkuji, eva
Kcko
Profil
turnhofer:
Jde to i snadněji jsbin.com/cacegevizo/edit?html,css,output
turnhofer
Profil
Kcko:
Děkuji, to by asi fungovalo, kdybychom tam ten text už znali. Ale já ho nevím. člověk to do toho komentáře bude psát tlačítky a pak třeba jeden poslední znak potřebuje smazat zase tlačítkem.
Jestli je potřeba, tak pošlu rovnou odkaz


blaaablaaa:
Ahoj, děkuji, už jsem zkoušela, ale nefunguje, nevím proč. Mohla bych ti poslat odkaz třeba do emailu? Dík za pomoc, e
Tomášeek
Profil
turnhofer:
Eh? Kckovo řešení maže to jakýkoliv poslední vložený znak. Co to takhle aspoň zkusit?
turnhofer
Profil
Tomášeek:
zkoušela jsem, nefunguje to. Podíváš se, prosím, jak to vypadá v reálu? Třeba bude jasnější, proč jsem to vymyslela takhle. Já neumím psát js jako vy...turnhofer.wz.cz/dp/?go=abeceda
Tomášeek
Profil
turnhofer:
Nikde tam nevidím implementované řešení od Kcko... Začni tím, že jej vložíš.
turnhofer
Profil
Tomášeek:
tak jo, je to na webu, ale nefunguje. zkoušela jsem to, vážně.
Kcko
Profil
turnhofer:
Já se teda jako uplně nedivím, že to nefunguje máš JS konzoli plnou chyb.
Tomášeek
Profil
turnhofer:
Ani teď to tam nevidím... A začni tím, že odstraníš chyby z konzole, které tam jsou. Pak pokračuj tím, že vložíš a odzkoušíš Kckův kód.
Kajman
Profil
turnhofer:
Použijte kód z [#2] od blaaablaaa

Kckův kód sice používá přehlednější slice, ale nezachovává zaměření správných elementů, pokud je na stránce víc butonů a inputů, a nepřeruší odeslání díky return false jak v [#1] nebo preventDefault() jak v [#2] (pokud je button typu button nebo submit).

Také pozor, aby js kód byl až po html, se kterým chce pracovat...

<form>
  <textarea id="txt">ABCD</textarea>
  <input type="button" value="&lt;&lt;" class="mazadlo">
</form>

<script>
$('.mazadlo').click(function(e){
  e.preventDefault();
  var inputString = $('#txt').val();
  if ( !inputString ) return;
  $('#txt').val( inputString.slice(0,-1) );
});
</script>

Hlavní chyba v prapůvodním kódu je nesoulad mezi identifikátory txt a text.
turnhofer
Profil
Kajman:
Dekuju ti, vyzkoušet můžu až večer, jsem v práci.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0