我想验证字段。如果用户未在该字段中输入任何内容并单击“提交”按钮,则无法对其进行验证。
请参阅以下示例:
$scope.validateFields = function(){
alert("Comments " + $scope.comments); //When fields are blank and click on submit, it shows undefined
if($scope.comments === 'undefined'){
alert("comments are blank");//not printed
$scope.comments = 'undefined';
}
if( $scope.comments.length == 0){
alert("comments length is zero"); //not printed
$scope.comments = 'undefined';
}
在上面的示例代码中,当单击提交按钮而不在注释字段中输入任何内容时,它没有输入if条件。我想在评论字段为空并单击“提交”按钮时分配$scope.comments='undefined'
。
答案 0 :(得分:0)
使用以下代码。您可以在加载控制器时初始化$ scope变量。
app.controller('myCtrl',function($scope,$http){
$scope.validateFields = function(){
if($scope.comments){
alert("comments are blank");
}
if( $scope.comments.length == 0){
alert("comments length is zero");
}
// alert("validate"+ $scope.comments.length);
}
function init() {
$scope.comments = '';
}
init();
});
选中plunkr
答案 1 :(得分:0)
第一个问题是您要检查$ scope.comments是否与未定义的字符串匹配,而不是检查当前是否在给定范围内定义了它。
if($scope.comments === undefined) {
alert("comments are blank");//not printed
$scope.comments = '';
}
注意,我只是删除了undefined周围的引号来实现此目的。您甚至可以为此使用速记来检查该值是否为false。您可以在线找到虚假值的完整列表,但其中有两个是空字符串或未定义。
if(!$scope.comments) {
alert("comments are blank");//not printed
$scope.comments = '';
}
接下来,您只需使用如下注释初始化$ scope即可完全避免这种情况。
var app=angular.module("myApp",[]);
app.controller('myCtrl', function($scope,$http) {
$scope.comments = '';
$scope.validateFields = function() {
alert("Comments " + $scope.comments);
if(!$scope.comments){
alert("comments are blank");
}
else {
alert("comments exist");
}
}
});
答案 2 :(得分:0)
检查空值的最佳方法是
if ( testVar !== null )
{
// do action here
}
对于未定义
if ( testVar !== undefined )
{
// do action here
}
您可以分配一个未定义的变量。
testVar = undefined;