Home > Mobile >  Making cursor skip disabled textform
Making cursor skip disabled textform

Time:03-13

Im making a site, with a lot of user registration, needed in practice, where the least amount of clicks is needed. Im making text input fields, which only need 1 charachter, before jumping to the next registration. However, these text input fields needs to be able to disable. This have I solved by using checked boxes and a function. My problem now comes, when needing to skip disabled text input fields: Lets say text input 2 is disabled, the cursor needs to jump from text input 1 to text input 3.

<form >
  <input type="text" id="yourText1" enabled maxlength="1"  onkeyup="jump(this,'yourText2')"/>
<input type="checkbox" id="yourBox1" checked onm ousedown="this.form.yourText1.disabled=this.checked"/>
 </form>

 <form >
  <input type="text" id="yourText2" enabled maxlength="1"  onkeyup="jump(this,'yourText3')"/>
<input type="checkbox" id="yourBox2" checked onm ousedown="this.form.yourText2.disabled=this.checked"/>
 </form>

 <form >
  <input type="text" id="yourText3" enabled maxlength="1"  onkeyup="jump(this,'yourText4')"/>
<input type="checkbox" id="yourBox3" checked onm ousedown="this.form.yourText3.disabled=this.checked"/>
 </form>

 <form >
  <input type="text" id="yourText4" enabled maxlength="1"  onkeyup="jump(this,'yourText1')"/>
<input type="checkbox" id="yourBox4" checked onm ousedown="this.form.yourText4.disabled=this.checked"/>
 </form>



 <script>
  function jump(field, automove) {
    if (field.value.length >= field.maxLength)
      {document.getElementById(automove).focus();}
    
    }
</script>

CodePudding user response:

This should work:

function jump(field, automove) {
  if (document.getElementById(field).value.length >= document.getElementById(field).maxLength||document.getElementById(field).disabled) {
    if (!document.getElementById(automove).disabled) {
      document.getElementById(automove).focus();
    } else {
      eval(document.getElementById(automove).getAttribute("onkeyup"));
    }
  }
}
<form>
  <input type="text" id="yourText1" enabled maxlength="1" onkeyup="jump('yourText1','yourText2')" />
  <input type="checkbox" id="yourBox1" checked onm ousedown="this.form.yourText1.disabled=this.checked" />
</form>

<form>
  <input type="text" id="yourText2" enabled maxlength="1" onkeyup="jump('yourText2','yourText3')" />
  <input type="checkbox" id="yourBox2" checked onm ousedown="this.form.yourText2.disabled=this.checked" />
</form>

<form>
  <input type="text" id="yourText3" enabled maxlength="1" onkeyup="jump('yourText3','yourText4')" />
  <input type="checkbox" id="yourBox3" checked onm ousedown="this.form.yourText3.disabled=this.checked" />
</form>

<form>
  <input type="text" id="yourText4" enabled maxlength="1" onkeyup="jump('yourText4','yourText1')" />
  <input type="checkbox" id="yourBox4" checked onm ousedown="this.form.yourText4.disabled=this.checked" />
</form>

Although it may not be the safest solution (as eval() is used), it should be the easiest one.

  • Related