HTML表单提交未在Wordpress帖子中调用Javascript“onsubmit”处理程序[重复]

Posted

技术标签:

【中文标题】HTML表单提交未在Wordpress帖子中调用Javascript“onsubmit”处理程序[重复]【英文标题】:HTML form submit not calling Javascript "onsubmit" handler in Wordpress post [duplicate] 【发布时间】:2014-12-21 19:35:28 【问题描述】:

我有一个基本的 html 表单,最后有一个提交按钮。问题是,我在表单标题中作为“onsubmit”处理程序提供的 javascript 函数没有被调用。

<form name="Details" method="post" onsubmit="validateForm()" id="Details_Form_ID">

这个处理函数在同一个文件中定义如下:

<script type="text/javascript">
function validateForm() 
    alert('I am an alert box!');

</script>

当我查看 Chrome 工具中的代码时,我注意到上面的 Javascript 代码本身包含在 &lt;p&gt; 元素下,而不是显示为“脚本”...下面的屏幕截图。我怀疑 Javascript 被视为纯文本,因此没有执行。

我该如何克服这个问题?我正在使用 wordpress 并编辑了一个“帖子”以包含此代码。

【问题讨论】:

在我的情况下,问题是表单提交后没有调用 Ajax 表单处理程序。相反,它会直接分支到表单中给出的“action”参数。基本问题是由于在 wordpress 中反复切换所见即所得和 HTML 编辑器,不知何故,ajax 表单提交处理程序通过插入 ![CDATA[.解决方案是在编辑 wordpress 帖子时禁用 WYSIWYG,并删除脚本前的 ![CDATA[ 关键字... 【参考方案1】:

可能是它正在调用它,但页面会刷新尝试阻止默认操作,然后检查是否调用了警报?

    onsubmit="validateForm(); return false;"

【讨论】:

感谢您的评论。我试过了,但 preventDefault() 也无济于事。我觉得问题出在其他地方。它甚至无法识别脚本本身,因此无法执行。【参考方案2】:

在我的情况下,问题是表单提交后没有调用 Ajax 表单处理程序。相反,它会直接分支到表单中给出的“action”参数。基本问题是由于在 wordpress 中反复切换所见即所得和 HTML 编辑器,不知何故,ajax 表单提交处理程序通过插入 ![CDATA[.

解决方案是在编辑 wordpress 帖子时禁用所见即所得,并删除脚本前的 ![CDATA[ 关键字。..

【讨论】:

以上是关于HTML表单提交未在Wordpress帖子中调用Javascript“onsubmit”处理程序[重复]的主要内容,如果未能解决你的问题,请参考以下文章

表单未在 Django 中发布

WordPress 自定义帖子类型前端特色图片提交

html/javascript onsubmit 事件未在表单提交上调用以验证表单

Wordpress API 提交帖子

表单验证未在提交时运行

WordPress 自定义帖子类型前端