Javascript 按钮意外提交表单
所以,我正在构建一个表单,在其中选择一个日期,然后可以向该日期添加时间段来安排事情。大概是这样的:Javascript 按钮意外提交表单,javascript,html,angularjs,Javascript,Html,Angularjs,所以,我正在构建一个表单,在其中选择一个日期,然后可以向该日期添加时间段来安排事情。大概是这样的: <form name="NewForm" ng-submit="submitForm(NewForm)"> <form-group> <angular-ui datepicker> <button ng-click="addRow()"> </form-group> <form-g
<form name="NewForm" ng-submit="submitForm(NewForm)">
<form-group>
<angular-ui datepicker>
<button ng-click="addRow()">
</form-group>
<form-group ng-repeat="timepicker in timepickers track by $index">
<angular-ui timepicker>
<select box for tasks to pick from>
<button class="btn btn-danger" ng-click="deleteRow($index)">
</form-group>
<button type="submit" class="btn btn-primary">
</form>
在控制器中,我有:
$scope.timepickers = []
$scope.addRow = function() {
$scope.timepickers.push({ some default object data to fill out the row });
}
$scope.deleteRow = function(index) {
$scope.timepickers.splice(index, 1);
}
$scope.submitForm(form) {
if ($scope.timepickers.length < 1) {
//do some stuff and don't send the form
}
else if (form.$valid) {
//send form data to api
}
else {
//do some other stuff and don't send the form
}
}
$scope.timepickers=[]
$scope.addRow=函数(){
$scope.timepickers.push({填写行的一些默认对象数据});
}
$scope.deleteRow=函数(索引){
$scope.timepickers.splice(索引,1);
}
$scope.submitForm(表单){
如果($scope.timepickers.length<1){
//做一些事情,不要发送表格
}
否则,如果(表格$valid){
//将表单数据发送到api
}
否则{
//做一些其他事情,不要发送表格
}
}
“删除”按钮是我添加的最后一个按钮,在我添加它之前,一切正常。然而,问题是,有时当我按下一行上的删除按钮时,它会提交表单,我一辈子都不知道为什么
如果我只有1或2行,它就可以正常工作。删除按钮删除行,我可以继续添加新行,等等。如果我添加了超过2行,我尝试删除中间行中的一行(如果我在NG重复中检查‘$Meal==true’),那么它删除行并调用子窗体函数。
我知道它实际上是通过submitForm函数运行的,因为如果我没有完全填写表单,那么验证内容仍然会触发,提交不会通过
有人有什么想法吗?您需要添加类型按钮的属性:
Doh。当然,事情很简单。谢谢我想知道为什么它只是为其中一些人而不是其他人提交表格。仍然很奇怪,但至少现在已经修复了。是的,默认情况下按钮会提交表单,因此需要添加type属性。