如何强制用户为Angular Inputs提供值

时间:2014-03-23 12:23:58

标签: forms node.js angularjs required-field

使用Angular设计具有3个输入的表单(基于Scotch.IO教程,用于Node + Express + Angular)。 我希望用户在提交表单之前强制选择每个输入的值。如果他没有,那么我想显示一条错误信息。

<form>
    <div class="form-group">
        Start Date: <input type="date" class="form-control input-lg text-center" ng-model="formData.fromDate" placeholder="yyyy-MM-dd">
    </div>
    <div class="form-group">
        End Date: <input type="date" class="form-control input-lg text-center" ng-model="formData.toDate" placeholder="yyyy-MM-dd">
    </div>
    <div class="form-group">
        Report Type: <select class="form-control input-lg text-center" ng-model="formData.reportType">
            <option value="csv">CSV</option>
            <option value="pdf">PDF</option>
        </select>
    </div>
    <button type="submit" class="btn btn-primary btn-lg" ng-click="findStat()">Add</button>
</form>

换句话说,我不想将'undefined'值传递回我的Node.js代码。 我尝试使用'required'选项,这不会阻止未定义的值被传回。

1 个答案:

答案 0 :(得分:1)

为表单命名:

<form name="myForm">

同时为您的输入命名,并为其添加有效性限制(必需等):

<input type="date" name="date" ...

然后在您的findStat()功能中,您可以访问该表单并检查其是否有效:

$scope.findStat = function() {
    if ($scope.myForm.$invalid) {
        $scope.displayError = true;
    }
    else {
        $scope.displayError = false;
        ...
    }
}

有关详细信息,请参阅http://code.angularjs.org/1.2.15/docs/api/ng/directive/formhttp://code.angularjs.org/1.2.15/docs/api/ng/type/form.FormController