gpt4 book ai didi

javascript - 有没有一种方法可以通过单击按钮来验证表单的一部分,而无需先实际提交表单?

转载 作者:行者123 更新时间:2023-11-29 16:09:15 25 4
gpt4 key购买 nike

所以基本上我有一个使用 Angular 的表单,它是一个注册表单并且有很多字段,所以为了更好的用户体验,我们决定使用 Angular 在表单的中途创建一个“下一步”按钮将用户带到表单的后半部分而不刷新页面。但是,使用像 required 这样的基本验证很复杂,因为如果用户在第一页上遗漏了某些内容,然后单击第二页上的提交按钮,“此字段是必需的”消息将闪烁,但用户看不到它,因为它出现了在第一个屏幕上。

有没有办法使用诸如 angularJS 或 jquery 验证插件之类的东西分别验证表单的每一半? IE。我可以在单击“下一步”按钮时验证表单的前半部分,以便用户在不先填写前半部分的情况下无法进入表单的后半部分吗?

请注意:我尝试使用 Jquery Validation 插件,但因为我也在使用 angular,所以当我单击下一个按钮时,它会验证一次,但仍然允许我转到下一页。

希望这个问题有道理,干杯!

最佳答案

您可以完全以 Angular 方式执行此操作,因为您在表单中使用了 Angular 。您还可以在发送发布请求之前在提交函数中添加检查是否有任何字段无效。

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<!DOCTYPE html>
<html>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<body>

<h2>Validation Example</h2>

<form ng-app="myApp" ng-controller="validateCtrl"
name="myForm" novalidate>

<div ng-show="!next">

<p>Username:<br>
<input type="text" name="user" ng-model="user" required>
<span style="color:red" ng-show="myForm.user.$dirty && myForm.user.$invalid">
<span ng-show="myForm.user.$error.required">Username is required.</span>
</span>
</p>

<p>Email:<br>
<input type="email" name="email" ng-model="email" required>
<span style="color:red" ng-show="myForm.email.$dirty && myForm.email.$invalid">
<span ng-show="myForm.email.$error.required">Email is required.</span>
<span ng-show="myForm.email.$error.email">Invalid email address.</span>
</span>
</p>
<input type="button" ng-disabled="myForm.user.$invalid || myForm.email.$invalid" ng-click="movenext()" value="Next" />
</div>

<div ng-show="next">
<input type="button" ng-click="prev()" value="Previous" /><br>
<p>Password:<br>
<input type="password" name="password" ng-model="password" required>
<span style="color:red" ng-show="myForm.password.$dirty && myForm.password.$invalid">
<span ng-show="myForm.password.$error.required">Password is required.</span>
</span>
</p>

<p>
<input type="submit"
ng-disabled="myForm.password.$invalid">
</p>
</div>
</form>

<script>
var app = angular.module('myApp', []);
app.controller('validateCtrl', function($scope) {
$scope.next = false;

$scope.movenext = function(){
$scope.next = true;
}
$scope.prev = function(){
$scope.next = false;
}
});
</script>

</body>
</html>

关于javascript - 有没有一种方法可以通过单击按钮来验证表单的一部分,而无需先实际提交表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33278660/

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