javascript - 知道为什么当表单提交为空时不显示警报吗?

标签 javascript

大家好,尝试进行表单检查,但我使用 javascript 所做的最基本的事情不起作用,知道我做错了什么吗?

html:

<form onsubmit= "return formCheck();" method="POST" action="check.php"  >
name: <input type="text" name="name" onchange="valid_name.checked = true;">
<input  type="checkbox" disabled="disabled" name="valid_name">
<input type="submit" value="Submit">
</form>

JavaScript:

function formCheck() {
    if(this.name.value == ""){
        alert("You forgot to enter your name");
        this.name.focus();
        return false;
    }
}

jsfiddle

http://jsfiddle.net/Lawwf/rRNBy/

提前致谢。

最佳答案

fiddle 有一些问题:

  • return formCheck(); 周围没有引号——尽管此处给出的代码有引号。
  • 您的 JS 代码被配置为在加载时执行,这使得 formCheck 无法访问全局上下文(需要将设置更改为“不换行”)。

代码有问题:

  • 在事件处理程序中,thiswindow 对象,而不是表单。 Window 已经有一个 name 属性,这与您想要执行的操作相冲突。不要以这种方式工作,请考虑使用 DOM 搜索方法(例如 getElementByIdquerySelectorAll 等)来获取元素。

<强> Updated working example :

function formCheck() {
    var el = document.querySelectorAll("input[name=name]")[0];
    if(el.value == ""){
        alert("Je bent vergeten je naam in te vullen");
        el.focus();
        return false;
    }   
}

关于javascript - 知道为什么当表单提交为空时不显示警报吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21369279/

相关文章:

javascript - 如何在 AngularJS 的页面上找到第一个键 "id"?

javascript - Safari Javascript Date() NaN 问题 (yyyy-MM-dd HH :mm:ss)

javascript - promise 链接-应该 promise 所有功能

php - 如何将大量参数从 PHP 传递到 Javascript 函数?

javascript - 如何获取 javascript 64 位 float 的实际字节数

javascript - 在 Javascript 中使用变量拆分和连接

javascript - 无法在 Backbone 集合中获取 JSON

javascript - 在 DataTable 中找不到匹配的记录

javascript - 函数中的 JQuery 复选框双重操作

javascript - 在 textarea 上键入时突出显示文本