Кнопка Tab не работает после нажатия на отправку формы

#javascript #html #angularjs

#javascript #HTML #angularjs

Вопрос:

У меня есть форма с кнопкой сохранения. При нажатии кнопки сохранения вызывается функция сохранения, и все данные формы сохраняются и перемещаются на другую страницу. Затем, когда я перехожу на предыдущую страницу, кнопка tab перестает работать. Единственный способ заставить кнопку tab работать — обновить страницу.

Я пытался указать tabindex, но все еще сталкивался с той же проблемой.

Вот мой код:

 <div id="customeruser" ng-show="custom_user">
<form name="userForm">
    <ul class="collapsible" data-collapsible="accordion">
        <li>
            <div class="collapsible-header active left">
                <i class="material-icons tclose">add</i>
                <i class="material-icons topen">remove</i>
                Personal Information
            </div>
            <div class="collapsible-body">
                <div class="row">
                    <div>
                        <input id="first_name" type="text" class="validate" ng-model="user.first_name">
                        <label for="first_name">First Name</label>
                    </div>
                    <div>
                        <input class="passhints" name="password" ng-model="user.password" id="password"
                            type="password" autocomplete="new-password">
                        <label for="password" data-error="wrong" data-success="right">Password*</label>
                    </div>
                </div>
            </div>
        </li>
        <li>
            <div class="collapsible-header left">
                <i class="material-icons tclose">add</i>
                <i class="material-icons topen">remove</i>
                Other information
            </div>
            <div>
                <input id="last_name" type="text" class="validate" ng-model="user.last_name">
                <label for="first_name">Last Name</label>
            </div>
        </li>
    </ul>
    <div class="left" ng-show="custom_user">
        <button type="submit" id="savechanges" ng-click="saveUser()">Create</button>
    </div>
</form>
 

Controller.js

     $scope.saveUser = function () {
    Restangular.all("users/createuser/").post($scope.user).then(
        function (user_status) {
            $scope.user.id = user_status
            if (user_status > 0) {
                swal({
                    title: "Success!",
                    text: "User was successfully created!",
                    type: "success",
                    confirmButtonText: "OK"
                },
                    function (isConfirm) {
                        if (isConfirm) {
                            $state.go('manage');
                        }
                    });
            }
        },
    )
}
 

Комментарии:

1. Не могли бы вы опубликовать код для saveUser() и объяснить, что вы подразумеваете под «переходами на другую страницу» и «переходом на предыдущую страницу»? Я предполагаю, что ваша функция saveUser () отключает форму, и вы никогда не покидаете страницу, а динамически меняете содержимое на существующей странице.

2. @StealthSpoder Я добавил saveUser().

3. Что имеет фокус вкладки, когда вы возвращаетесь к / управление? Это должно быть где-то, может быть, в строке местоположения или одной из кнопок браузера? Можете ли вы добавить функцию $ timeout для focus() элемента с индексом tab 0 при инициализации контроллера?

4. Элемент @kendavidson фокусируется, но кнопка tab по-прежнему не работает. Я пробовал с указанием индекса вкладки и без него.