Event事件对象之表单事件

25 篇文章 0 订阅
10 篇文章 0 订阅
本文详细介绍了HTML表单中的事件,包括onblur、onchange、onfocus等,讲解了每个事件的触发时机、应用场景和浏览器支持情况,对于前端开发者理解和使用表单事件具有指导意义。
摘要由CSDN通过智能技术生成

1. onblur

在对象失去焦点时发生

Onblur 经常用于Javascript验证代码,一般用于表单输入框。

提示

onblur 相反事件为 onfocus 事件 。

支持的HTML标签
除了: <base>, <bdo>, <br>, <head>, <html>, <iframe>, <meta>, <param>, <script>, <style>, 和 <title>元素以外都可以
浏览器支持
googleIEfirefoxsafariopera
truetruetruetruetrue

ElementObject.onblur=function

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>zsh</title>
</head>
<body>
    <input id='input' type="text"/><span id='span'></span>
    <div id='div'></div>
</body>
<script>
    input.onfocus = function(){
        span.innerText = "    离开此输入框会有惊喜哟!";
    }

    input.onblur = function(){
        span.innerText = "";
        div.innerText = input.value;
    }

</script>
</html>

2. onchange

在域的内容改变时发生

提示
  • onchange 事件也可用于单选框与复选框改变后触发的事件。
  • 值在改变时候才会触发,当焦点离开时值才改变。
支持的HTML标签
除了: <base>, <bdo>, <br>, <head>, <html>, <iframe>, <meta>, <param>, <script>, <style>, 和 <title>元素以外都可以
浏览器支持
googleIEfirefoxsafariopera
truetruetruetruetrue

ElementObject.onfocus=function

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>zsh</title>
</head>
<body>
    <input id='input' type="text"/><span id='span'></span>
    <div id='div'></div>
</body>
<script>
    input.onchange = function(){
        div.innerText = this.value;
    }

</script>
</html>

3. onfocus

在对象获得焦点时发生

提示
  • Onfocus 通常用于 <input>, <select>, <a>.
  • onfocus 事件的相反事件为 onblur 事件。
支持的HTML标签
<input>, <select>, 和 <textarea>
浏览器支持
googleIEfirefoxsafariopera
truetruetruetruetrue

ElementObject.onchange=function

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>zsh</title>
</head>
<body>
    <input id='input' type="text"/><span id='span'></span>
    <div id='div'></div>
</body>
<script>
    input.onfocus = function(){
        span.innerText = "    离开此输入框会有惊喜哟!";
    }

    input.onblur = function(){
        span.innerText = "";
        div.innerText = input.value;
    }

</script>
</html>

4. onfocusin

在一个元素即将获得焦点时触发

提示
  • onfocusin 事件类似于 onfocus 事件。 主要的区别是 onfocus 事件不支持冒泡。因此,如果你想知道元素或者其子元素是否获取焦点,需要使用 onfocusin 事件。
  • 虽然 Firefox 浏览器不支持 onfocusin 事件, 但你可以通过使用 onfocus (使用addEventListener()方法的可选参数 useCapture)的捕获监听事件来查看元素或其子元素是否获取焦点。
  • onfocusin 事件的相反事件是 onfocusout 事件。
  • 支持冒泡。
支持的HTML标签
除了: <base>, <bdo>, <br>, <head>, <html>, <iframe>, <meta>, <param>, <script>, <style>, 和 <title>
浏览器支持
googleIEfirefoxsafariopera
true9.0falsetruetrue
注意

在 Chrome, Safari 和 Opera 15+ 浏览器中使用 HTML DOM 语法的 onfocusin 事件可能无法正常工作。 但是,他作为一个 HTML 元素,通过使用 addEventListener() 方法可以正常工作。

ElementObject.onfocusin=function

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>zsh</title>
</head>
<body>
    <input id='input' type="text"/><span id='span'></span>
    <div id='div'></div>
</body>
<script>
    input.addEventListener('focusin',function(){
        alert('你点我了');
    })

    input.addEventListener('focusout',function(){
        alert('你点它了');
    })

</script>
</html>

5. onfocusout

在元素即将失去焦点时触发

提示
  • onfocusout 事件类似于 onblur 事件。 主要的区别是 onblur 事件不支持冒泡。因此,如果你需要查看元素或其子元素是否获取焦点,需要使用 onfocusout 事件。
  • 虽然 Firefox 浏览器不支持 onfocusout 事件, 但你可以通过使用 onblur (使用addEventListener()方法的可选参数 useCapture)的捕获监听事件来查看元素或其子元素是否获取焦点。
  • onfocusout 事件的相反事件是 onfocusin 事件。
  • 支持冒泡。
支持的HTML标签
除了: <base>, <bdo>, <br>, <head>, <html>, <iframe>, <meta>, <param>, <script>, <style>, 和 <title>
浏览器支持
googleIEfirefoxsafariopera
true9.0falsetruetrue
注意

在 Chrome, Safari 和 Opera 15+ 浏览器中使用 HTML DOM 语法的 onfocusout 事件可能无法正常工作。 但是,他作为一个 HTML 元素,通过使用 addEventListener() 方法可以正常工作。

ElementObject.onfocusin=function

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>zsh</title>
</head>
<body>
    <input id='input' type="text"/><span id='span'></span>
    <div id='div'></div>
</body>
<script>
    input.addEventListener('focusin',function(){
        alert('你点我了');
    })

    input.addEventListener('focusout',function(){
        alert('你点它了');
    })

</script>
</html>

6. oninput

在用户输入时触发

提示
  • 该事件在 或 元素的值发生改变时触发
  • 该事件类似于 onchange 事件。不同之处在于 oninput 事件在元素值发生变化是立即触发, onchange 在元素失去焦点时触发。另外一点不同是 onchange 事件也可以作用于 和 元素。
  • 支持冒泡。
支持的HTML标签
<input type="password">, <input type="search">, <input type="text"> 和 <textarea>
浏览器支持
googleIEfirefoxsafariopera
true9.04.05.0true

ElementObject.oninput=function

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>zsh</title>
</head>
<body>
    <input id='input' type="text"/><span id='span'></span>
    <div id='div'></div>
</body>
<script>
    input.oninput = function(){
        div.innerText = this.value;
    }
</script>
</html>

7. onreset

在表单被重置后触发

提示
  • 支持冒泡。
  • 事件响应后重置文本。
支持的HTML标签
<form>, <keygen>
浏览器支持
googleIEfirefoxsafariopera
truetruetruetruetrue

ElementObject.onreset=function

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>zsh</title>
</head>
<body>
    <form id='form'>
        输入您的名字: <input id = 'inputText' type="text">
        <input type="reset">
    </form>
</body>
<script>
    var i = 0;
    form.onreset = function(){
        i++;
        setTimeout(text,0)//防止信息被重置,将事件响应放入栈底
    }

    function text()
    {
        if(i)
        inputText.value = '重置了' + i +'次';
    }
</script>
</html>

8. onselect

在文本框中的文本被选中时发生

支持的HTML标签
可用于: <input type="file">, <input type="password">, <input type="text">, <keygen>, 和 <textarea>.
浏览器支持
googleIEfirefoxsafariopera
truetruetruetruetrue

ElementObject.onselect=function

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>zsh</title>
<script>
function myFunction(){
    alert("你选中了一些文本");
}
</script>
</head>
<body>

一些文本: <input type="text" value="Hello world!" onselect="myFunction()">

</body>
</html>

9. onsubmit

在表单提交时触发

提示
  • 支持冒泡
支持的HTML标签
<form>, <keygen>
浏览器支持
googleIEfirefoxsafariopera
truetruetruetruetrue

ElementObject.onsubmit=function

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>zsh</title>
</head>
<body>

<p>当提交表单是,触发函数并弹出提示信息。</p>
<form action="demo-form.php" onsubmit="myFunction()">
  输入名字: <input type="text" name="fname">
  <input type="submit" value="提交">
</form>
<script>
function myFunction() {
    alert("表单已提交");
}
</script>

</body>
</html>

文档内容出自 W3cSchool和菜鸟教程, 如需查看更详细的有关内容 请登录 http://www.w3school.com.cn/http://www.runoob.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值