Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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 如何判断是否已提交HTTP表单?_Javascript_Jquery_Html_Angularjs_Forms - Fatal编程技术网

Javascript 如何判断是否已提交HTTP表单?

Javascript 如何判断是否已提交HTTP表单?,javascript,jquery,html,angularjs,forms,Javascript,Jquery,Html,Angularjs,Forms,让我们使用一个简单的小请愿表,它旨在天真地收集数十亿个密码: <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 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代码(尽可能地)通知我,最明显的是被点击的“符号”按钮,但这甚至只是我想要捕捉的事件的开始

我能想到的最简单的方法是在按钮的
ngClick
事件上创建并清除一个隐藏的输入,然后轮询一个固定的超时,直到该输入的值是一个常量,并且总是从
POST
请求返回


注意:这是一个很小的例子,展示了一大群这样的表单,然后将它们全部转换为使用带有信号完成的Ajax调用,这仅仅是在可行的非常遥远的一方,而且离理想的更遥远。与我提出的其他此类问题不同,我没有兴趣直接衡量通话的成功与否。

用纯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提交指令


请在此阅读-

首先,没有“Angular-esque”表单POST-表单POST是一个完整的页面事件,“end”结果是一个HTTP响应,浏览器捕获该响应以呈现新页面。如果您正在执行Ajax POST(例如,在Angular中使用
$http.POST
),则
.then
/
.catch
处理程序就是完成处理程序。除此之外,我恐怕不明白你的问题,我想我们需要定义“一个成功的帖子”的含义。如果这意味着表单将数据返回到操作地址,那么我不知道如何在客户端完成这项工作。为什么不让服务器告诉你呢?所有这些的问题是它们在文章的开头就发出了。我想让我的观点知道这篇文章何时完成,或者最坏的情况是何时中止。似乎唯一的解决方案是等待隐藏值与表单数据一起返回。似乎没有办法在非Ajax文章中实现我想要的内容,因此您得到了一个好方法的要点。
<form ng-submit="callback()">
$scope.callback = function(){ /*...*/ };