gpt4 book ai didi

javascript - 使用 $.each 进行表单验证

转载 作者:行者123 更新时间:2023-12-01 02:41:45 24 4
gpt4 key购买 nike

这是我的表单验证代码。这里 alert("validation done") 应该在验证每个输入后显示。但是它会返回每个输入。这里有什么问题吗?

var app=angular.module('myApp',[])
app.controller('myController',function($scope){
$scope.clickMe = function(){
debugger
$form = $('#myForm');
$form.find('div input.required').each(function () {debugger
var $this = $(this)
if ($this.val().trim() == '') {
$(this).css('border', '1px solid red');
return false;
}
return true;
})

alert("validation done")
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myController">
<form id="myForm" >
<div>
<input type="text" class="required">
<input type="date" class="required">
<select class="required">
<option>AAA</option>
<option>BBB</option>
</select>
</div>
</form>
<button ng-click="clickMe()">submit</button>
</div>

最佳答案

Here alert("validation done") should be displayed after validation of every inputs.

在这种情况下

  • 警报应位于each循环内
  • $('#myFrom'); 应更改为 $('#myForm');
  • 删除 if 内的 return false

演示

var app = angular.module('myApp', [])
app.controller('myController', function($scope) {
$scope.clickMe = function() {
$form = $('#myForm');
var isValid = true;
$form.find('div input.required').each(function() {
var $this = $(this)
if ($this.val().trim() == '') {
$(this).css('border', '1px solid red');
isValid = false;
}
if (isValid) {
alert("validation done"); //notice the change in placement of this alert
}
return true;
})
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myController">
<form id="myForm">
<div>
<input type="text" class="required">
<input type="date" class="required">
<select class="required">
<option>AAA</option>
<option>BBB</option>
</select>
</div>
</form>
<button ng-click="clickMe()">submit</button>
</div>

关于javascript - 使用 $.each 进行表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47528170/

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