InstantClick 禁用表单提交
Posted
技术标签:
【中文标题】InstantClick 禁用表单提交【英文标题】:InstantClick disables form submit 【发布时间】:2016-08-23 07:42:04 【问题描述】:我目前正在使用 php laravel 框架并尝试将 Instantclick 用于刀片模板,但它禁用了表单提交。 我在引导模式中有一个类似下面的表格。我可以在第一次加载时提交表单。但是,如果我移动到其他页面并返回,我将无法提交表单。
<form id="caseNoteForm" class="width-100" method="post" action="route("updateNote",["caseNo"=>$case->case_no])">
method_field("PUT")
<textarea name="customerReportNote" rows="10" class="width-100" style="resize: vertical">$case->customerReportNote</textarea>
<div class="width-100">
<button class="btn btn-success pull-right margin-top-10" value="submit" type="submit">Finalize</button>
</div>
</form>
似乎 InstantClick 也禁用了 jQuery。我该如何处理这种冲突? 我已经为我拥有的所有脚本尝试了 data-no-instant,但它仍然不起作用。 请给我一些建议
【问题讨论】:
【参考方案1】:InstantClick 不会禁用表单。反之,它不理会表单,无论您做什么,任何表单提交都将被排除在 InstantClick 行为之外。
此外,它不会禁用 jQuery 或任何其他脚本。但是可能会发生冲突!请注意,如果您使用的是 Laravel Debugbar,它会使用 jQuery.noConflict()
,这可能会导致您的 jQuery 库出现问题 - 加载另一个页面后,jQuery 不再可以作为 $
或 jQuery
访问。解决方案之一就是避免使用noConflict()
。
data-no-instant
是对的 - 您应该将它用于不应在每次页面更改时加载的每个脚本,但只加载一次,这通常是大多数典型脚本。对于您需要在每次页面更改时再次加载的所有脚本,请不要使用该属性,如果它只是代码的一部分,请使用
InstantClick.on('change', function()
// Do what you need to do on each page change here
);
【讨论】:
以上是关于InstantClick 禁用表单提交的主要内容,如果未能解决你的问题,请参考以下文章