сбросить несколько полей формы с AngularJS

0

Я использую следующий код для сброса поля формы, используя флажок с AngularJS.

<input type="text" ng-model="data.test" ng-disabled="data.check">

<input type="checkbox" 
ng-change="data.test = data.check ? '' : data.test"
ng-model="data.check" 
value="one">

Как я могу использовать этот код для сброса нескольких полей формы?

Благодаря,

Джон

  • 0
    Вы хотите сбросить поля формы, когда флажок установлен?
  • 0
    да, код работает выше, но только на одном поле.
Теги:

2 ответа

1
Лучший ответ

Храните данные в отдельном массиве и валидаторе в другой переменной

<input type="text" ng-model="data.test" ng-disabled="clear.check">
<input type="text" ng-model="data.test_another" ng-disabled="clear.check">

<input type="checkbox" ng-change="data = clear.check ? {} : data"
ng-model="clear.check" value="one">

Как только вы захотите сбросить данные формы, вы можете напрямую назначить пустой массив, чтобы сформировать массив данных

  • 0
    Я попробовал этот код, и он не работал. Было ли что-то еще, что я должен был добавить кроме вышеупомянутого?
  • 0
    это работает нормально для меня, проверьте мой plunker plnkr.co/edit/wrV9vZMdFqtlqtvLxWAA
Показать ещё 3 комментария
0

Вы можете использовать $ setPristine() для сброса состояния поля.

HTML:

<form name="myForm">

    <input type="text" ng-model="data.test" ng-disabled="data.check">
    <input type="text" ng-model="data.test2" ng-disabled="data.check">
    <input type="checkbox" 
    ng-change="reset()"
    ng-model="data.check" 
    value="one">
</form>

JS:

$scope.resetForm = function() {
    $scope.data = {
        "test": "",
        "test2": ""
    };
    // 'myForm' is the name of the <form> tag.
    $scope.myForm.$setPristine();
}
  • 0
    Я попробовал ваш код и получил - Не могу найти переменную: $ scope error.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню