Input Widget - Value auslesen über JS

Begonnen von ulli, 13 Januar 2018, 20:13:02

Vorheriges Thema - Nächstes Thema

ulli

Ich versuche verzweifelt den vom User eingetragenen Wert über JS auszulesen aber es klappt nicht.

<script type="text/javascript">
function scan()
{
      var a=document.getElementById("sendValue");
      ftui.setFhemStatus('set var_docArchiv_device ascan ' + a.value );
}
</script>
.....
<div class="notransmit" data-type="input" data-device="BU_DocArchiv"
id="sendValue" data-get="lastName"
onfocus="this.select()"
></div>
   

Leider gibt a.value immer ein undefined zurück....was mach ich falsch?

Ps: das onfocus funktioniert aus irgend einem Grund auch nicht..??

setstate

die ID "sendValue" hat das Widget, nicht die Input-Box. Die ist ein Child vom Widget.

So bekommt man den Wert mit pure JS:


var value = document.getElementById("sendValue").children[0].value


oder so


var value = document.querySelector("#sendValue input").value


oder mit jQuery


var value = $('#sendValue input').val();



ulli

Perfekt besten Dank. Hab die letzte Möglichkeit gewählt ;)

ulli

Ein Problem hab ich noch.
Ich würde gerne, wenn man in das Inputfeld clickt, das der Text markiert wird.
onfocus="this.select()"
funktioniert vermutlich aus dem selben Grund nicht.

Hast du dazu noch eine Idee?

setstate

Das Inputwidget kennt jetzt class="autoselect"

ulli

Hab gerade gesehen es gibt auch ein autoclear....funktioniert aber leider nicht

setstate


ulli

   <div class="notransmit autoclear" style="padding-left: 77px;" data-type="input" data-device="BU_DocArchiv"
                  id="sendValue" data-get="lastName"

         ></div>      

ulli


setstate

Das Löschen erfolgt beim Enter-drücken. Nicht wenn man auf einen externen Button klickt. Solch eine Funktion müsste im Button eingebaut sein.

ulli

Achso, die Idee war das sich das Textfeld leert wenn ich rein Klicke.
Möchte nicht immer den Text löschen bevor ich was neues rein Schreibe.
Es sollte aber der Text stehen bleiben wenn er eingetragen wurde.

Geht das auch irgendwie?

setstate

autoclear raus und autoselect rein. Dann wird beim Reinklicken alles markiert und beim Schreiben damit alles überschrieben.

ulli