【问题标题】:Form onsubmit not triggered by inlined javascript表单 onsubmit 不是由内联 javascript 触发的
【发布时间】:2018-01-29 08:37:42
【问题描述】:

当我点击按钮时,我的问题出现了,表单提交得很好,但是没有调用内联的onsubmit 事件,所以从不打印确认警报。

我的代码:

<!-- Delete button -->
<a onclick="document.getElementById('delete-form-`+ data.id +`').submit();" class="icon">
    <i class="mdi mdi-delete"></i>
</a>

<!-- Hidden form -->
<form id="delete-form-`+ data.id +`" action="`+ 'posts/'+ data.id +`"
    style="display: none;" 
    onsubmit="return confirm('Are you sure you want to perform this action?');">
    {{ method_field('DELETE') }}
    {{ csrf_field() }}
</form>

我不知道这是否会发生,有什么原因吗?我想保持内联,你有什么解决办法吗?

编辑:您可能已经注意到我使用的引号,但是这段代码是使用 javascript 插入到 DOM 中的,我认为值得一提。

提前谢谢你。

【问题讨论】:

  • 你遇到了哪个 JS 错误?
  • @AddWebSolutionPvtLtd 正如我所说的表单提交正常,所以没有错误,它只是忽略表单中的onsubmit,并在没有事先确认的情况下到达控制器。
  • 您可以将表单绑定到onclick 而不是onsubmit
  • @0decimal0 但是表单是隐藏的,我应该怎么点击呢?
  • 然后将其绑定到一个按钮。

标签: javascript forms laravel blade dom-events


【解决方案1】:

我不确定你可以为同一个元素使用多个 id 并使用 + 来分隔它们

<form id="delete-form-`+ data.id +`"

【讨论】:

  • 正如我所提到的,该代码是循环的一部分,所以data.id 是递增的,所以永远不会相同。
猜你喜欢
  • 1970-01-01
  • 2012-04-09
  • 2017-05-11
  • 1970-01-01
  • 2019-12-14
  • 2020-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多