AngularJS:防止空的(但脏的)表单输入包含在AJAX帖子中
AngularJS: prevent empty (but dirty) form inputs from being included in AJAX post
我有一个带有"地址"部分的表单。我使用$http post请求将表单数据发送到服务器。
如果我没有在地址字段中键入任何内容(原始),则地址数据不会包含在我发送到服务器的对象数据中。
如果我确实在地址字段中键入了一些内容,则删除我键入的内容(留空),空字段将包含在发送到服务器的JSON中:
{
street:"",
city:""
}
如果字段为空,我不想包含(可选)地址数据。
如果单独的表单字段为空,有没有一种方法可以轻松地将其重置为"原始"?
将某些内容设置为原始状态的唯一方法是手动。也就是说,一旦一个表单被触摸,它就会被触摸,直到你说不一样。
我可能会在更新函数中检查表单字段中的值,并依赖原始状态。
我认为您可以使用ng模式来使空字段无效,这将阻止它们添加到您提交的对象中。我会在控制器中添加类似的内容
$scope.nonEmpty=/^(.+)$/i
然后在HTML 中
<输入ng pattern='nonEmpty'…>
如果字段为空,则不会添加它,因为它与模式不匹配,否则将发送
您可以监视该值,检查是否为空,然后手动将其重置为原始
$scope.$watch('inputName',function(newVal){
if(newVal ==="")
$scope.form.inputName.$pristine = true;
});
相关文章:
- 如何使用JQuery检查输入(电子邮件)字段是否包含特殊字符
- jQuery将输入集中在下一个tr->td时,td包含一个输入字段,但从不关注html选择
- 如何在Jquery中的.ech()中包含动态添加的输入值
- 如果输入包含数组中的任何单词
- jQuery选择器,用于查找包含具有特定值的TD输入的TR
- 将HTML输入到包含的索引页中
- 将jQuery输入包含在表单帖子中
- 大写输入字段中包含的每个单词
- 在innerHTML中包含变量值以创建输入id's和占位符
- 如何检查“http://”是否包含在 Angular .js 应用程序的 url 输入中
- 角度 UI 预测文本:如何输入未包含在输入数组中的数据
- 在包含输入的输入文本框中输入字符后,移动到新页面
- 如果输入字段通过 ID 或类包含内容,则禁用输入字段
- 如果 e.keyCode 是“输入”按钮,并且元素包含其他文本,则验证条件
- 将焦点设置在带有错误消息的第一个输入元素上,并将包含它的 TabStrip 选项卡设置为活动状态
- 解析包含 /regexp/ 文字的类似 JSON 的输入
- AngularJS:防止空的(但脏的)表单输入包含在AJAX帖子中
- 为什么当输入包含换行符时regex会失败
- 如果输入包含值,Jquery将隐藏标签
- 确定用户输入包含URL