按'Enter'执行"取消"按钮而不是"提交"


<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>

为什么在按下键盘上的"Enter"键后,我被重定向到app.project.list而不是执行saveProject(project, projectForm)函数?

按钮默认的typesubmit。您必须显式地取消设置为"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的值

最新更新