函数未在 HTMLFormElement.onsubmit 中定义 [重复]

Posted

技术标签:

【中文标题】函数未在 HTMLFormElement.onsubmit 中定义 [重复]【英文标题】:function is not defined at HTMLFormElement.onsubmit [duplicate] 【发布时间】:2020-05-06 07:44:50 【问题描述】:

我正在使用它正在工作的表单中的验证器。它会在应该显示消息的时候显示消息,但是在单击提交后,即使所有内容都有效,它也会显示以下错误消息:

未捕获的引用错误:未定义验证 在 htmlFormElement.onsubmit

<form id="details" class="add-listing-form" method="post" action="url('listing/'.$result->send_id.'/'.$step)" onsubmit="return Validate();" accept-charset='UTF-8'></form>
$('#details').validate(
  rules: 
    'amenities[]': 
      required: true,
    
  ,
  messages: 
    'amenities[]': 
      required: " __('messages.jquery_validation.required') ",
    
  ,
  groups: 
    amenities: "amenities[]"
  ,
  errorPlacement: function(error, element) 
    if (element.attr("name") == "amenities[]") 
      error.insertAfter("#at_least_one");
     else 
      error.insertAfter(element);
    
  ,
);

【问题讨论】:

Validate() 函数定义在哪里?它没有显示在您的代码中。 这是一个laravel页面,是在调用所有其他脚本后定义的。 您能否在问题中添加一个示例。 【参考方案1】:

答案是我不需要这样做 onsubmit="return Validate();"从表单提交中删除!

【讨论】:

在这种情况下,问题是错字,问题最好删除 根据文档、标签的 wiki 页面以及 SO 标记的 jQuery Validate 上的 6000 多个问题,使用内联点击处理程序不是一个好的选择,也不会在提交时调用 validate 函数。事实上,单独使用 jQuery 就不需要任何内联事件处理程序。就像 Rory 说的,可能最好删除这整件事。谢谢。 是的罗伊,我有投票要删除【参考方案2】:

你应该定义

function Validate()

    ...
 

在从 HTML 调用它之前在你的脚本中

【讨论】:

以上是关于函数未在 HTMLFormElement.onsubmit 中定义 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

会话变量未在函数中设置

函数未在 onclick 事件中调用

反应:useContext 值未在嵌套函数中更新

dumpbin 命令未在 dll 中列出函数名称

SetInterval 函数未在小时内设置 innerHTML

为啥我的 Solidity 构造函数需要两个未在参数中指定的变量?