2

我有一个带有“地址”部分的表格。我使用 $http 发布请求将表单数据发送到服务器。

如果我没有在地址字段(原始)中输入任何内容,则地址数据不包含在我发送到服务器的对象数据中。

如果我确实在地址字段中输入了某些内容,然后删除我输入的内容(将其留空),则空字段将包含在发送到服务器的 JSON 帖子中:

{
    street:"",
    city:""
} 

如果字段为空白,我不想包含(可选)地址数据。

如果将单个表单字段留空,有没有办法轻松地将它们重置为“原始”?

4

3 回答 3

0

我认为您可以使用 ng-pattern 来使您的空字段无效,这将阻止它们被添加到您提交的对象中。我会在控制器中添加类似的东西

$scope.nonEmpty=/^(.+)$/i

然后在 HTML

...< 输入 ... ng-pattern='nonEmpty' ... >

如果该字段为空,则不会添加,因为它与模式不匹配,否则将被发送

于 2013-07-23T23:03:17.423 回答
0

将某些东西设置为原始的唯一方法是手动。也就是说,一旦表单被触动,它就会被触动,直到您另有说明。

我可能会在更新函数中检查表单字段中的值以及依赖原始状态。

于 2013-07-23T15:50:48.687 回答
0

您可以将手表放在值上,检查是否为空,然后手动将其重置为原始状态

$scope.$watch('inputName',function(newVal){
  if(newVal ==="")
     $scope.form.inputName.$pristine = true;
});
于 2013-07-25T17:07:51.483 回答