js表单
js表单验证
html的表单验证可以通过js来完成。
以下code用于判断表单字段(fname)值是否存在,若不存在,就弹出信息,阻止表单提交
<script>
function validateForm(){
var x = document.forms["myForm"]["fname"].value;
if(x == null || x == ""){
alert("需要输入名字。");
return false;
}
}
</script>
//用html代码调用js
<body>
<form name = "myForm" action = "demo_form.php" onsubmit = "return validateForm()" method = "post">
名字:<input type = "text" value = "enter name" name = "fname">
<input type = "button" value = "提交">
</form>
</body>
js验证输入数字正确性
<p>请输入 1 到 10 之间的数字:</p>
<input id = "numb">
<button type = "button" onclick = "myFunction()">提交</button>
<p id = "demo"></p>
<script>
function myFunction(){
var x, text;
//获取id = "numb"的值
x = document.getElementById("numb").value;
if (isNaN(x) || x < 1 || x > 10) {
text = "输入错误";
} else {
text = "输入正确";
}
document.getElementById("demo").innerHTML = text;
}
</script>
js表单验证
JavaScript this 关键字
JavaScript let 和 const
let
声明的变量只在let
命令所在的代码块内有效
const
声明一个只读的常量,一旦声明,常量的值就不能改变
ES6前,js只有两种作用域,全局变量和函数内的局部变量
全局变量
在函数外声明的变量是全局的。
全局变量在js程序的任何地方都可以访问
局部变量
在函数内声明的变量作用域是局部的(函数内)。
函数内使用var声明的变量只能在函数内访问,如果不使用var则是全局变量。
块级作用域(block scope)
用let实现块级作用域。
let 声明的变量只在 let 命令所在的代码块 {} 内有效,在 {} 之外不能访问。
var x = 10;
// 这里输出 x 为 10
{
let x = 2;
// 这里输出 x 为 2
}
// 这里输出 x 为 10
在函数体内使用var和let的作用域都是局部的
在函数体外或代码块外使用 var 和 let 关键字声明的变量也有点类似,它们的作用域都是全局的。
变量提升
js中:
var
声明的变量可以先使用后声明
let
定义的变量则不行,即只能先声明再使用
const
关键字定义的变量则不可以在使用后声明,也就是变量需要先声明再使用。
remember:
使用var关键字声明的全局作用域变量属于window对象。
使用let关键字声明的全局作用域变量不属于window对象。
使用var关键字声明的变量在任何地方都可以修改。