gpt4 book ai didi

javascript - 当输入在 angularjs 中有效时添加类

转载 作者:行者123 更新时间:2023-12-03 08:17:14 25 4
gpt4 key购买 nike

我的 angularjs 表单中有一个错误。我想在 angularjs 表单的输入有效时更改元素的类,如果无效则将其更改回来。

我得到了这个代码:

<li data-ng-class="{ success: userFormRegistration.email.$valid, danger: userFormRegistration.email.$invalid }" class="danger">valid email</li>

现在这是电子邮件的输入:

<input type="email" name="email" data-ng-model="userFormRegistration.email" class="form-control ng-pristine ng-invalid ng-invalid-required ng-invalid-email" placeholder="Email" required="">

一开始添加的类是危险,但是当我输入有效的电子邮件时,它会删除该类,但不会添加成功类..

这是 angularjs 代码:

// app.js
// create angular app
var FormApp = angular.module('FormApp', []); ;


// create angular controller
/*FormApp.controller('registrationFormController', function ($scope, $http) {*/
function registrationFormController($scope, $http) {
// create a blank object to hold our form information
// $scope will allow this to pass between controller and view
$scope.userFormRegistration = {};

// function to submit the form after all validation has occurred
$scope.submitForm = function (form) {
// check to make sure the form is completely valid
if (form.$valid) {
$scope.userFormRegistration = { actionname: "registration", email: $scope.userFormRegistration.email, password: $scope.userFormRegistration.password }
// start ajax call
$http({
method: 'POST',
url: 'Registration.php',
data: $.param($scope.userFormRegistration), // pass in data as strings
headers: { 'Content-Type': 'application/x-www-form-urlencoded'} // set the headers so angular passing info as form data (not request payload)
})
.success(function (data) {
console.log(data);
if (!data.success) {
// if not successful, bind errors to error variables
$scope.errorRegistrationEmail = data.errors.email2;
$scope.errorRegistrationPassword = data.errors.password;
$scope.errorRegistrationActionname = data.errors.actionname;
$scope.registrationMessage = data.message;
}
else {
// if successful, bind success message to message
$scope.message = data.message;
}
});
//end ajax call
}
else {
if (!$scope.userFormRegistration.email.$valid) {
var error = { message: "please enter valid email" };
$scope.errorRegistrationMessage = error.message;
}
else if (!$scope.userFormRegistration.password.$valid) {
var error = { message: "please enter valid password " };
$scope.errorRegistrationMessage = error.message;
}
}
};
};

请您提出建议。

最佳答案

$valid 和 $invalid 属性来自表单,而不是来自输入的值。您需要一个带有名称的表单元素,然后在输入中也需要一个名称,然后使用 formName.inputName.$valid 或 $invalid。

关于javascript - 当输入在 angularjs 中有效时添加类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33885887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com