0

最初のテキストボックスが最大長に達すると、2 つのテキストボックスがあり、2 番目のテキストボックスに自動フォーカスされます。
問題は、maxlength を再度入力した後、最初のテキスト ボックスに入力された値全体を選択し、別の値を編集しようとしたが、2 番目のテキスト ボックスに移動したことです。

<!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

コード スニップで onkeypress の代わりに onkeydown を使用します。

<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); next.focus(); }

これが役立つかどうかを確認してください

于 2013-03-07T07:08:42.013 に答える