我有一个带有“地址”部分的表格。我使用 $http 发布请求将表单数据发送到服务器。
如果我没有在地址字段(原始)中输入任何内容,则地址数据不包含在我发送到服务器的对象数据中。
如果我确实在地址字段中输入了某些内容,然后删除我输入的内容(将其留空),则空字段将包含在发送到服务器的 JSON 帖子中:
{
street:"",
city:""
}
如果字段为空白,我不想包含(可选)地址数据。
如果将单个表单字段留空,有没有办法轻松地将它们重置为“原始”?
我有一个带有“地址”部分的表格。我使用 $http 发布请求将表单数据发送到服务器。
如果我没有在地址字段(原始)中输入任何内容,则地址数据不包含在我发送到服务器的对象数据中。
如果我确实在地址字段中输入了某些内容,然后删除我输入的内容(将其留空),则空字段将包含在发送到服务器的 JSON 帖子中:
{
street:"",
city:""
}
如果字段为空白,我不想包含(可选)地址数据。
如果将单个表单字段留空,有没有办法轻松地将它们重置为“原始”?
我认为您可以使用 ng-pattern 来使您的空字段无效,这将阻止它们被添加到您提交的对象中。我会在控制器中添加类似的东西
$scope.nonEmpty=/^(.+)$/i
然后在 HTML
...< 输入 ... ng-pattern='nonEmpty' ... >
如果该字段为空,则不会添加,因为它与模式不匹配,否则将被发送
将某些东西设置为原始的唯一方法是手动。也就是说,一旦表单被触动,它就会被触动,直到您另有说明。
我可能会在更新函数中检查表单字段中的值以及依赖原始状态。
您可以将手表放在值上,检查是否为空,然后手动将其重置为原始状态
$scope.$watch('inputName',function(newVal){
if(newVal ==="")
$scope.form.inputName.$pristine = true;
});