0

如果第一个文本框达到最大长度,我有两个文本框,它会自动聚焦到第二个文本框。
现在的问题是再次输入 maxlength 后,我选择在第一个文本框中输入的整个值并尝试编辑不同的值,但它移动到第二个文本框。

<!DOCTYPE html>

<html>
    <body>
        <script>
        function branchAutoTab(){

            current = document.getElementById('primaryFilterBranchTextBox1');

            next = document.getElementById('primaryFilterBranchTextBox2');

            if (current.getAttribute&&current.value.length==current.getAttribute("maxlength")){

                next.focus();
            }
        }
        </script>

        <input id="primaryFilterBranchTextBox1" type="text" maxlength="3" class="controlFormatExtraSmall" onkeypress="javascript:if (event.keyCode!=8)branchAutoTab();" >
        &nbsp;&nbsp;Producer&nbsp;
        <input id="primaryFilterBranchTextBox2" type="text" maxlength="6" class="controlFormatExtraSmall"/> 
    </body>
</html>
4

1 回答 1

0

在代码片段中使用 onkeydown 而不是 onkeypress:

<input id="primaryFilterBranchTextBox1" type="text" maxlength="3" class="controlFormatExtraSmall" onkeypress="javascript:if (event.keyCode!=8)branchAutoTab();" > &nbsp;&nbsp;Producer&nbsp;
          <input id="primaryFilterBranchTextBox2" type="text" maxlength="6" class="controlFormatExtraSmall"/>  

用这个:

<input id="primaryFilterBranchTextBox1" type="text" maxlength="3" class="controlFormatExtraSmall" onkeydown="javascript:if (event.keyCode!=8)branchAutoTab();" > &nbsp;&nbsp;Producer&nbsp;
          <input id="primaryFilterBranchTextBox2" type="text" maxlength="6" class="controlFormatExtraSmall"/>  

修改if逻辑如下:

if (current.getAttribute&¤t.value.length>current.getAttribute("maxlength")){ current.value=current.value.substr(0,current.value.length); 下一个焦点();}

检查这是否有帮助

于 2013-03-07T07:08:42.013 回答