首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >javascript表单验证不像预期的那样工作

javascript表单验证不像预期的那样工作
EN

Stack Overflow用户
提问于 2013-10-15 16:09:47
回答 3查看 1.4K关注 0票数 0

为什么这个表单验证不起作用?我这样做:

代码语言:javascript
复制
<form name="myForm" action="save-info.php" method="post" onsubmit="return(validu());">

http://jsfiddle.net/QrYmh/41/

我试图向我的表单中添加一个验证函数,但是即使我直接返回false,它也不能工作。表格还在提交,有什么问题吗?

我需要为我的输入添加一些验证逻辑。但我似乎做不到。js调试器(火狐)说ReferenceError: validu没有定义

请帮帮忙

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-15 16:13:22

由于您已经在使用jQuery,所以您可以使用可用的方法

检查这把小提琴

代码语言:javascript
复制
$(document).ready(function () {
    $('form').submit(function (e) {
        e.preventDefault();
        alert('vdsdsfsdf');
        //validate and submit.
    });
}
票数 3
EN

Stack Overflow用户

发布于 2013-10-15 16:24:35

要能够从function属性引用on*,必须在全局范围内定义它。

由于validu()当前在另一个function中声明,onsubmit属性根本无法到达它。

要使validu()成为全局的:

  1. 删除围绕$(document).ready(function () { })function validu()。 附带注意,.ready()事件对于function声明并不是真正必要的。当您需要从document中选择元素时,它们非常有用: 函数handleSubmit(事件){ // .}$(Document).ready(函数() {$(‘formname=“myForm”).submit(HandleSubmit);});
  2. 将JSFiddle选项从将代码包装在另一个function中的onLoad更改为:
代码语言:javascript
复制
- `No wrap - in <head>`
- `No wrap - in <body>`

或者,正如karthikr所建议的那样,您也可以使用非突发性JavaScript而不是onsubmit属性,这样事件绑定和function可以在相同的范围内。

代码语言:javascript
复制
$(document).ready(function () {
    function validu() {
        alert('vdsdsfsdf');
        return false;
    }

    $('form[name="myForm"]').submit(validu); // <----
});

修正Fiddle

票数 2
EN

Stack Overflow用户

发布于 2013-10-15 16:24:18

函数validu()必须由html代码访问。在这种情况下,它只能在jquery函数中访问。

不幸的是,不可能简单地将其置于jsfiddle中的就绪函数之外以使其工作,因为jsfiddle本身将js代码放置在一个窗口加载函数中。所以你得这样写,

代码语言:javascript
复制
<script>function validu()
{
    alert('vdsdsfsdf');
    return false;
}</script>
<form name="myForm" action="save-info.php" method="post" onsubmit="return(validu());">

<div class="container" style="width:700px; margin:0 auto;"> 
<fieldset>
.....

http://jsfiddle.net/QrYmh/52/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19385991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档