Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按钮意外提交表单_Javascript_Html_Angularjs - Fatal编程技术网

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属性。