0

I am trying to implement auto sized text field based on the solution from this question

<input style="width:20px;" onkeypress="this.style.width = ((this.value.length + 1) * 5) + 'px';"  ng-model="questionButtons[$index].title" type="text" class="edt_spn active" >

it works fine however when the user deletes characters width is not adjusting

<input style="width:20px;" onkeypress="this.style.width = ((this.value.length + 1) * 5) + 'px';"  ng-model="questionButtons[$index].title" type="text" class="edt_spn active" >
shellakkshellu
  • 4,908
  • 15
  • 59
  • 110

2 Answers2

1

Try onkeyup event.

<input style="width:20px;" onkeyup="this.style.width = ((this.value.length + 1) * 5) + 'px';console.log(this.value.length);"  ng-model="questionButtons[$index].title" type="text" class="edt_spn active" >
Lalit
  • 1,324
  • 1
  • 8
  • 13
0

I think that the best variant is to use oninput event.

From MDN:

The DOM input event is fired synchronously when the value of an <input>, <select>, or <textarea> element is changed.

<input style="width:20px;"  oninput="this.style.width = ((this.value.length + 1) * 5) + 'px';"  ng-model="questionButtons[$index].title" type="text" class="edt_spn active" >
Vasyl Moskalov
  • 3,627
  • 1
  • 21
  • 26