Javascript 防止AngularJS中的默认事件';我不能正常工作

Javascript 防止AngularJS中的默认事件';我不能正常工作,javascript,html,angularjs,Javascript,Html,Angularjs,这是我的HTML表单: <form class="form-login" name="loginForm" novalidate ng-submit="login()"> <fieldset> <h2>Login</h2> <input type="text" required class="input-block-level" placeholder="Username" ng-model="user

这是我的HTML表单:

<form class="form-login" name="loginForm" novalidate ng-submit="login()">
    <fieldset>
        <h2>Login</h2>
        <input type="text" required class="input-block-level" placeholder="Username" ng-model="username" name="username" tabindex="1" xs-input-sync>
        <input type="password" required class="input-block-level" placeholder="Password" ng-model="password" name="password" tabindex="2" xs-input-sync>

    </fieldset>
</form>
到目前为止,一切正常。但由于只有在表单上设置了
action=“/”
属性时,浏览器才会显示本机的“记住密码”对话框,因此我也将其添加到了表单中

添加
action=“/”
后,无论我如何尝试,只要按Enter键或登录按钮,表单就会被提交。我还尝试将
$event
参数添加到html
login
函数调用中,然后执行
$event.preventDefault()但还是不行

URL上也会发生同样的情况,如:

<a class="xs-btn edit-btn" ng-click="toggleEditMode($event)"></a>

我尝试过:
$event.preventDefault()
返回false
,添加
href=“”
href=“#”
。但是没有任何工作,我总是被重定向到网站的根目录。唯一有效的方法是
href=“javascript:void(0);”


知道我做错了什么吗?似乎整个应用程序都出了问题。

正如我所看到的,只需将
onsubmit=“return false”
添加到
中即可:

很好。但在AngularJS文档中,它表示默认情况下会阻止该事件。那么问题是什么呢?你能给Plunker贴一个简单的小例子吗?你提到“a”对你也不起作用,所以这里有一个例子来证明:我将尝试在那里找到一些可复制的东西,并从中创建一个plunker。我无法在这里复制整个项目:)你认为这与后端url重写有关吗?正如文档中所说,我正在将所有内容重写为AngularJS代码运行的index.html。它似乎只有在url中包含“http://”时才起作用。否则你会被重定向到一个页面。嗯……我只是没看到。我添加了一个记录器,以便您可以看到。当您单击所有条目并且没有重定向时,您是否没有看到它们的日志?我明白你在说什么了。您只需停止事件传播:。
<a class="xs-btn edit-btn" ng-click="toggleEditMode($event)"></a>