【发布时间】:2015-02-21 17:35:49
【问题描述】:
这是我的简单表格:
<form accept-charset="utf-8" class="form-vertical" id="template" autocomplete="off" name="template" method="POST" action="http://test.dev/templates">
...various inputs and HTML here...
<input class="btn btn-primary" type="submit" value="Update">
</form>
这是我的 JS,它不会阻止表单提交:
<script type="text/javascript">
(function ($) {
'use strict';
$("form#template").on('submit.template', function (e) {
e.preventDefault();
console.debug(e.relatedTarget);
return false;
});
}(jQuery));
</script>
根据过去的经验,这应该会阻止在单击 Update 时提交表单。感觉好像我错过了一些非常明显的东西。这里会发生什么?
jQuery 2.1.1
【问题讨论】:
-
如何调试它?提交处理程序是否被解雇?也许您只需要使用文档就绪处理程序作为包装器,例如:
jQuery(function($){...});FYI,您的return语句在这里没用 -
脚本很可能没有被执行。不同的原因,但由于这是一个内联脚本,它可能与
Content-Security-Policy标头冲突。这应该显示在浏览器控制台中。 -
@j08691 在代码块的最后,经过多次检查,我打算用JS提交表单。命名空间允许我第二次关闭提交检查以防止循环:
$("form#template").off('submit.template').submit(); -
@arkascha No
Content-Security-Policy通知。 -
@eComEvo SO FORM 是动态添加到 DOM 中的吗?您为什么不发布相关链接或在线示例以检查您的问题???
标签: javascript jquery laravel blade