让我们使用一个简单的小型请愿表,旨在无辜地收集数十亿的密码:
<form action="/Petition/Sign" method="post">
<input class="form-control password" id="Password" name="Password" type="password">
<button type="submit" class="btn loginBtn">Sign</button>
</form>
我想在这个视图中用JavaScript代码(尽可能使用Angular-esque)发出信号,当一个成功的帖子因任何原因发生时,最显而易见的是&#39; Sign&#39;单击按钮,但这甚至只是我想要结束的事件的开始。
我能想到的最简单的方法是在按钮的ngClick
事件中创建并清除隐藏的输入,然后轮询一个固定的超时,直到该输入的值是一个始终预期的常量值从POST
请求返回。
注意:这是大量此类形式的一个很小的例子,转换然后所有使用带有信号完成的Ajax调用仅在可行的非常偏远的一侧,并且远离理想。与我提出的其他问题不同,我没有兴趣直接衡量电话的成功。
答案 0 :(得分:1)
以纯粹的javascript方式 -
var ele = [Your Form Element];
if(ele.addEventListener){
ele.addEventListener("submit", callback, false); //Modern browsers
}else if(ele.attachEvent){
ele.attachEvent('onsubmit', callback); //Old IE
}
在jquery -
$(element).submit(function(){
console.log('submitted);
});
而在AngularJs -
为此目的有ng-submit指令。https://docs.angularjs.org/api/ng/directive/ngSubmit
<form ng-submit="callback()">
控制器中的
$scope.callback = function(){ /*...*/ };
也请阅读 - How can I listen to the form submit event in javascript?