Javascript 角度验证不适用于“选择”
这是一个简单的表单,一个下拉列表和一个保存按钮。在页面加载时,选择应为ng无效,因为它是必需的,并且未选择任何内容,但窗体和选择都是ng有效的,并且调用了保存函数。 一旦我选择了任何东西并取消选择它。然后它会正常工作Javascript 角度验证不适用于“选择”,javascript,angularjs,validation,Javascript,Angularjs,Validation,这是一个简单的表单,一个下拉列表和一个保存按钮。在页面加载时,选择应为ng无效,因为它是必需的,并且未选择任何内容,但窗体和选择都是ng有效的,并且调用了保存函数。 一旦我选择了任何东西并取消选择它。然后它会正常工作 <form role="form" name="frmVariableConfig" id="frmVariableConfig" novalidate ng-submit="frmVariableConfig.$valid && sa
<form role="form" name="frmVariableConfig" id="frmVariableConfig" novalidate ng-submit="frmVariableConfig.$valid && saveChanges()">
<div>
<div class="form-group">
<div class="form-group control-group">
<span>Logic</span>
<select name="service_id" class="Sitedropdown" style="width: 220px;"
ng-model="CurrCustomer.Logic"
ng-options="service.ServiceID as service.ServiceName for service in services"
required="">
<option value="">Select Service</option>
</select>
</div>
</div>
</div>
<div>
<button type="submit" class="btn btn-sm text-right">Save</button>
</div>
</form>
您需要删除setter
$scope.CurrCustomer.Logic=false代码>从正在填充<代码>ng模型的控制器中,并使其在控制器加载时有效。填写CurrCustomer.Logic
值后,它将根据需要成为有效输入。它有帮助。但现在的问题是,我看不到验证消息“this is the required field”(这是必填字段),除非选择了某些内容,否则它不会允许我调用save函数。但我看不到验证消息。这和诺瓦利达有关吗?@RaasMasood我在你的标记中没有看到的消息在哪里?你说的是浏览器弹出窗口吗?我说的是在验证出错时弹出的不显眼的验证错误。@RaasMasood yes..这是因为novalidate
属性
(function () {
'use strict';
var controllerId = 'dashboard';
angular.module('app').controller(controllerId, ['$scope', dashboard]);
function dashboard($scope) {
$scope.CurrCustomer = {};
$scope.CurrCustomer.Logic = false;
$scope.saveChanges = function () {
alert('function called');
};
$scope.services = [
{ ServiceID: 1, ServiceName: 'Service1' },
{ ServiceID: 2, ServiceName: 'Service2' },
{ ServiceID: 3, ServiceName: 'Service3' }
];
}})();