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..??
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();
Perfekt besten Dank. Hab die letzte Möglichkeit gewählt ;)
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?
Das Inputwidget kennt jetzt class="autoselect"
Hab gerade gesehen es gibt auch ein autoclear....funktioniert aber leider nicht
:o
Zeig mal den Code
<div class="notransmit autoclear" style="padding-left: 77px;" data-type="input" data-device="BU_DocArchiv"
id="sendValue" data-get="lastName"
></div>
Müsste doch so stimmen oder?
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.
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?
autoclear raus und autoselect rein. Dann wird beim Reinklicken alles markiert und beim Schreiben damit alles überschrieben.
Funktioniert, Danke!