onblur,“onblur”和“onfocus”的区别是什么
各位老铁们好,相信很多人对onblur都不是特别的了解,因此呢,今天就来为大家分享下关于onblur以及“onblur”和“onfocus”的区别是什么的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
“onblur”和“onfocus”的区别是什么
onfocus是得到焦点,
onblue是失去焦点,
比如我们最常用的文本搜索框,通常我们都会有个默认提示“请输入搜索关键字”,这时就能用到这俩事件了,得到焦点的时候吧“请输入搜索关键字”清空,失去焦点在默认显示“请输入搜索关键字”【当然这个是你没有输入关键字的时候】如下:
<input type="text" value="请输入搜索关键字" onfocus="if(this.value=='请输入搜索关键字') this.value=''" onblue="if(this.value=='') this.value='请输入搜索关键字'"/>
通常不写如.js文件里面的搜索框默认值都是这么写的
表单提交onblur和onsubmit冲突如何解决
我今天也遇到这个问题了,输入框点进去,然后直接点提交的时候会因为blur()导致form表单校验方法不被触发,网上翻了很久,试了好多方法,然后偶然看到一句话惊醒,换个优先级更高的事件绑定提交按钮就可以了,我用了mousedown(),在里面用js提交form表单,实测可行
vue下拉框如何控制onblur和onchange
一、onChange事件只有在值改变时才可触发,所以必须在每一次选择时(尤其第一次)保证选择的值是改变的!
所以<select name=”inv_payee” id=”ECS_INVPAYEE”οnchange=”show_payee();” style=”border:1px solid#ccc;”>
<option value=”个人” selected>个人</option>//在这要选定一个默认的值“selected”
<option value=”单位”>单位</option>
</select>
这样在选择第二个时,值就会变即可触发onChange;
二、我们用Select的onchange事件时,常会遇到这样一个问题,那就是连续选相同一项时,不触发onchange事件.select的onchange事件就是这样子的.你得有Change(改变),才能触发该事件….
<select name=selοnchange=”bao(this.options[this.options.selectedIndex].value)”>
<option value=””>请选择
<option value=”1″>Item 1
<option value=”2″>Item 2
<option value=”3″>Item 3
</select>
<script>
function bao(s)
{undefined
txt.value=s;
//选择后,让第一项被选中,这样,就有Change啦.
document.all.sel.options[0].selected=true;
}
</script>
<textarea id=txt></textarea>
三、
js中onchange事件是在客户端改变输入控件的值,比如一个textbox,会出发的一个事件。但是如果在js代码中改变一个textbox的value,而不是通过键盘输入改变一个textbox值的话,是不会出发onchange事件的。
那么,如何在js代码模式通过代码触发textbox控件的onchange事件呢,经过查阅资料,发现js提供了一个方法,可以触发控件的应该是所有事件。object.fireEvent()方法,使用方法如 object.fireEvent(‘onchange’),即可触发控件的onchange事件。
同理,js中使用fireEvent方法还可以触发其他的空间事件。
触发onchange事件的问题,并不是值一旦更改就会触发onchange事件。
对于onBlur和onFocus可以直接调用object.Blur()和object.Focus(),但javascript中没有object.Change
事件。
1.ie处理1
document.getElementByIdx_x(‘hid_provider_id’).attachEvent(“onpropertychange”,function(){alert(‘gggg’);});
2.object.fireEvent()可以触发事件,如触发onchange事件则是object.fireEvent(‘onchange’),以此类推。
例:
<SELECT id=select1οnchange=”alert(this.value)”>
<OPTION value=”0″>0</OPTION>
<OPTION value=”1″>1</OPTION>
<OPTION value=”2″>2</OPTION>
</SELECT>
<INPUT type=”text” id=text1 name=text1>
<INPUT type=”button” value=”Button”οnclick=”select1.selectedIndex=text1.value”>
手动改变select的值,会触发onchange
脚本改变selectedIndex,不会触发onchange
解决办法
if(select1.fireEvent)
select1.fireEvent(“onchange”)
else
select1.onchange()
或
<INPUT type=”button” value=”Button”οnclick=”select1.selectedIndex=text1.value;
select1.fireEvent(‘onchange’)”>
程序,里因为程序里有多个action里并每个action有多个submit按钮事件,为了区别代码,同时页面隐藏
按钮
<select name=”select”οnchange=”document.getElementByIdx_x(‘seaoldsubmit’).click();”>
<option value=”0″>查询条件</option>
……
</select>
<input type=”submit” name=”seaoldsubmit” value=”确定” style=”display:none”>
if(submitcheck(‘seaoldsubmit’))
四、最近项目中遇到一个问题,要用js去触发onchange事件。
上网找了一些资料,IE上有onpropertychang事件,可以用js去触发这个事件,但是Firefox不支持这个事件,
然后在firefox中去绑定一个input事件。但是这是无效的啊,仍然不会去触发onchange事件。
最后只能用未解决方案了!
用js修改值的时候,在js执行修改完之后去执行onchange事件,不过这样即使这个值不改变的话也会调用这个方法。
function handle()
{document.getElementByIdx_x(‘msg’).innerHTML=’输入的文字长度为:’+document.getElementByIdx_x(‘txt’).value.length;
}
//firefox下检测状态改变只能用oninput,且需要用addEventListener来注册事件。
if(/msie/i.test(navigator.userAgent))//ie浏览器
{document.getElementByIdx_x(‘txt’).onpropertychange=handle
}
else
{//非ie浏览器,比如Firefox
document.getElementByIdx_x(‘txt’).addEventListener(“input”,handle,false);
}
</script>
</head>
<body id=”mybody”>
<div id=”msg”></div>
<input id=’txt’ value=””/>
以上为测试代码。
五.onfocus实现了任意点击,在数据库了也只查询一次
六。onmousedown单击一次就查询一次,所以每选择一次就查询一次,增加了数据库的负担。
javascript 中的onblur 事件
你说的没错,blur本来的意思就是模糊。
最开始的情况是这样的,在我们看一个电视镜头时,画面上有两个人,一远一近,如果远处的人在说话,我们将镜头位伸,焦点在远处的人身人,而近处的人就模糊了,而拉近时,近处的人会清晰,远处的人处于失焦的情况下就会模糊。
这个与网页中的情况很象的,一个网页中只有一个焦点,这个焦点到一个对象上去,那么其余的对象都是在失焦的状况下的。所以人家使用了onblur作为事件从焦点转移的事件是没有错的。
我想这个对象学习js是没有任何帮助的,所以没有必要再进行深入。两种语言对译时显然是不能完美对译的,鲁迅先生曾说过,翻译讲究的是信(对原译语种语义的保证),达(被译语种的清晰表达),雅(翻译上不能做结巴,被译语种的流利表达)三字。而按单词查汉语意思来就是一个索引而已,有时翻译时不可能做到完美对接,而这个就是这种情况,我们兼顾了达字,就翻译成了失去焦点的事件,如果不考虑达的情况,你爱怎么翻译都行的!
这种情况尤其多见于俚语,谵语的翻译。
no pains no gains。
译过来就是“不劳无获”。
难道说也是英语不过关,反pains翻译错了?pain并没有任何劳动的意思的!
感谢您的阅读!希望本文对解决您关于onblur的问题有所帮助。如果您还有其他疑问,欢迎随时向我们提问。