按“Enter”执行“取消”按钮而不是“提交”

时间:2014-06-03 09:41:20

标签: angularjs

<form class="stdform stdform2" name="projectForm" ng-submit="saveProject(project, projectForm)"
      novalidate="novalidate">
    <p>
        <div class="par control-group" ng-class="{'has-error': projectForm.projectName.$invalid && (projectForm.projectName.$dirty || submitted)}">
        <label class="control-label" for="projectname">Name</label>

        <div class="controls">
        <span class="field">
            <input id="projectname" type="text" ng-model="project.name" name="projectName" class="form-control"
                   required/>
            <label ng-show="projectForm.projectName.$error.required && (projectForm.projectName.$dirty || submitted)"
                   class="error" for="projectname">Please type project name</label>
        </span>
        </div>
    </div>
    </p>
    <p>
        <label>Description</label>
        <span class="field">
            <textarea ng-model="project.description" name="projectDescription"
                      style="resize: vertical; height: 110px;" class="form-control input-default"></textarea>
        </span>
    </p>

    <p class="stdformbutton">
        <button class="btn btn-default" ui-sref="app.project.list">Cancel</button>
        <button class="btn btn-primary" type="submit">{{saveMessage}}</button>
    </p>
</form>

为什么在按下&#39;输入&#39;键盘上的键是否重定向到app.project.list而不是执行saveProject(project, projectForm)功能?

1 个答案:

答案 0 :(得分:8)

默认type for buttons is submit。您必须明确取消它到"button"以避免提交操作:

<p class="stdformbutton">
    <button class="btn btn-default" type="button" ui-sref="app.project.list">Cancel</button>
    <button class="btn btn-primary" type="submit">{{saveMessage}}</button>
</p>

如果您希望清除type="reset"值,也可以设置input