怎么给select添加select标签点击事件件

今天看啥 热点:
select中无法使用click的处理,selectclick今天工作用到了select,想要给option添加click点击事件,可是却没有任何效果,百度了才发现,原来竟然是不支持呀!
众所周知(其实我才知道哎),在IE里, select的option是不支持onclick事件的, 而在FF 和 OPERA 里, option 是支持onclick事件的. (safari似乎也不支持,不过暂时我还不知道如何解决safari的问题.)
我今天是用onchange来解决的,原谅也是才知道它可以用这个。select状态改变来调用函数。
1 &!DOCTYPE html&
3 &head lang="en"&
&meta charset="UTF-8"&
&script src="js/jquery-1.11.3.js"&&/script&
&title&&/title&
10 &select name="" id="qq" onchange="outputSelect()"&
&option value="1"&qq&/option&
&option value="2"&bbb&/option&
&option value="3"&ccc&/option&
14 &/select&
16 &div class="con" style="display:none"&111&/div&
17 &div class="con" style="display:none"&222&/div&
18 &div class="con" style="display:none"&333&/div&
20 &script&
$(".con").eq(0).show();
function outputSelect(){
console.log("aa");
var num =$("#qq").find("option:selected").index();
console.log(num);
$(".con").hide();
$(".con").eq(num).show().siblings().hide();
console.log($("#qq").find("option:selected").val());
var aa=$("#qq option:selected").val();
console.log(aa);
33 &/script&
34 &/body&
35 &/html&
虽然onchange在某些时刻可以代替 option的click事件, 但是两者并无法做到完全等价. 因为onchange只有在 你点击的option和之前的option不同时才会触发. 当select当前选中的是第一项& 而你再次点击第一项时, select是不会被触发的.
下面的代码演示了一种间接实现 option onclick的方法
注意:此方案只适用于 下拉方式的单选select.
&!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&
&title&select-option onclick &/title&
&script type="text/javascript" &
function simOptionClick4IE(){
var evt=window.
var selectObj=evt?evt.srcElement:null;
// IE Only
if (evt && selectObj &&
evt.offsetY && evt.button!=2
&& (evt.offsetY & selectObj.offsetHeight || evt.offsetY&0 ) ) {
// 记录原先的选中项
var oldIdx = selectObj.selectedI
setTimeout(function(){
var option=selectObj.options[selectObj.selectedIndex];
// 此时可以通过判断 oldIdx 是否等于 selectObj.selectedIndex
// 来判断用户是不是点击了同一个选项,进而做不同的处理.
showOptionValue(option)
function showOptionValue(opt,msg){
var now=new Date();
var dt= (1900+now.getYear())+'-'+(now.getMonth()+1)+'-'+now.getDate()+
' '+now.getHours()+':'+now.getHours()+':'+now.getSeconds()+'.'+now.getMilliseconds();
var resultZone=document.getElementById('reslut');
resultZone.style.margin="10px";
resultZone.innerHTML=dt +" 时,点击了: " + (opt.text + ' = '+opt.value);
onclick="simOptionClick4IE()" &
&!-- 下面的 onclick="showOptionValue( this )" 是为 ff 和 opera而准备 --&
&option value="1" onclick="showOptionValue( this )" &aaaaa&/option&
&option value="2" onclick="showOptionValue( this )" &bbbbb&/option&
&option value="3" onclick="showOptionValue( this )" &ccccc&/option&
&div id="reslut" &&/div&
才知道),在IE里,select的option是不支持onclick事件的, 而在 FF 和 OPERA 里, option 是支持onclick事件的. (似乎也不支持,不过暂时我还不知道如何解决safari的问题.)
相关搜索:
相关阅读:
相关频道:
&&&&&&&&&&&&&&&&&&
Javascript最近更新今天工作用到了select,想要给option添加click点击事件,可是却没有任何效果,百度了才发现,原来竟然是不支持呀!
众所周知(其实我才知道哎),在IE里, select的option是不支持onclick事件的, 而在FF 和 OPERA 里, option 是支持onclick事件的. (safari似乎也不支持,不过暂时我还不知道如何解决safari的问题.)
我今天是用onchange来解决的,原谅也是才知道它可以用这个。select状态改变来调用函数。
1 &!DOCTYPE html&
3 &head lang="en"&
&meta charset="UTF-8"&
&script src="js/jquery-1.11.3.js"&&/script&
&title&&/title&
10 &select name="" id="qq" onchange="outputSelect()"&
&option value="1"&qq&/option&
&option value="2"&bbb&/option&
&option value="3"&ccc&/option&
14 &/select&
16 &div class="con" style="display:none"&111&/div&
17 &div class="con" style="display:none"&222&/div&
18 &div class="con" style="display:none"&333&/div&
20 &script&
$(".con").eq(0).show();
function outputSelect(){
console.log("aa");
var num =$("#qq").find("option:selected").index();
console.log(num);
$(".con").hide();
$(".con").eq(num).show().siblings().hide();
console.log($("#qq").find("option:selected").val());
var aa=$("#qq option:selected").val();
console.log(aa);
33 &/script&
34 &/body&
35 &/html&
虽然onchange在某些时刻可以代替 option的click事件, 但是两者并无法做到完全等价. 因为onchange只有在 你点击的option和之前的option不同时才会触发. 当select当前选中的是第一项& 而你再次点击第一项时, select是不会被触发的.
下面的代码演示了一种间接实现 option onclick的方法
注意:此方案只适用于 下拉方式的单选select.
&!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&
&title&select-option onclick &/title&
&script type="text/javascript" &
function simOptionClick4IE(){
var evt=window.
var selectObj=evt?evt.srcElement:null;
// IE Only
if (evt && selectObj &&
evt.offsetY && evt.button!=2
&& (evt.offsetY & selectObj.offsetHeight || evt.offsetY&0 ) ) {
// 记录原先的选中项
var oldIdx = selectObj.selectedI
setTimeout(function(){
var option=selectObj.options[selectObj.selectedIndex];
// 此时可以通过判断 oldIdx 是否等于 selectObj.selectedIndex
// 来判断用户是不是点击了同一个选项,进而做不同的处理.
showOptionValue(option)
function showOptionValue(opt,msg){
var now=new Date();
var dt= (1900+now.getYear())+'-'+(now.getMonth()+1)+'-'+now.getDate()+
' '+now.getHours()+':'+now.getHours()+':'+now.getSeconds()+'.'+now.getMilliseconds();
var resultZone=document.getElementById('reslut');
resultZone.style.margin="10px";
resultZone.innerHTML=dt +" 时,点击了: " + (opt.text + ' = '+opt.value);
onclick="simOptionClick4IE()" &
&!-- 下面的 onclick="showOptionValue( this )" 是为 ff 和 opera而准备 --&
&option value="1" onclick="showOptionValue( this )" &aaaaa&/option&
&option value="2" onclick="showOptionValue( this )" &bbbbb&/option&
&option value="3" onclick="showOptionValue( this )" &ccccc&/option&
&div id="reslut" &&/div&
才知道),在IE里,select的option是不支持onclick事件的, 而在 FF 和 OPERA 里, option 是支持onclick事件的. (似乎也不支持,不过暂时我还不知道如何解决safari的问题.)
阅读(...) 评论()网页-select 如何使用JS&JQ模拟真实的点击事件
作者:用户
浏览:417 次
select如何使用JS&JQ模拟真实的点击事件&br&functiongoogleTranslateElementInit(){&br&newgoogle.trans
select 如何使用JS&JQ模拟真实的点击事件
function googleTranslateElementInit() {&br&
new google.translate.TranslateElement({&br&
pageLanguage: 'en',&br&
includedLanguages: 'en,zh-CN,de',&br&
layout: google.translate.TranslateElement.FloatPosition.TOP_LEFT,&br&
multilanguagePage: true}, 'google_translate_element');&br&
如何做到进入网页默认自动翻译!!
我用一下方式都不行,可以改变select中的值但是不能出发翻译事件
$(window).load(function(){
$('.goog-te-combo').change(function(){
$('.goog-te-combo').empty();
var optiongoogle = $('').val('en').text('English');
$('.goog-te-combo').append(optiongoogle);
$('.goog-te-combo').val('en');
$('.goog-te-combo').click(function(){
$('.goog-te-combo').val('en');
$('.goog-te-combo').val('en');
$('.goog-te-combo').ondblclick();
想要的功能自己搞定了,用php的setcookie,可以达到自动翻译的效果:
$googtrans = '/en/en';
setcookie("googtrans",$googtrans, time()+3600*24);
【云栖快讯】红轴机械键盘、无线鼠标等753个大奖,先到先得,云栖社区首届博主招募大赛9月21日-11月20日限时开启,为你再添一个高端技术交流场所&&
稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一
6款热门基础云产品6个月免费体验;2款产品1年体验;1款产品2年体验
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率
开发者常用软件,超百款实用软件一站式提供jquery selectBox 怎么能在点击的时候触发事件
jquery selectBox 怎么能在点击的时候触发事件
09-03-23 &
$(&#id&).click(function(){//to&do&something~});/docs/jquery/144/jQuery&1.4.4&中文API参考手册
请登录后再发表评论!&select& 下拉框选中事件 如何绑定 - ITeye问答
我有一个
&select name="typeid"&
&option value="1"&买菜&/option&
&option value="2"&购物&/option&
&option value="3"&吃饭&/option&
&/select&
我之前的option是从数据库中读取出来的,此页面是一个消息修改页面,select的下拉框的值想要绑定到数据库这个实体的值,同时还要循环数据库取出的所有类型的值加载到select里头。谢谢大家了谁会的话教教小弟。
问题补充:怎么写啊,能详细介绍下么。麻烦了
有两种方法,一是用struts标签,二十在页面写逻辑代码。
我是做jsp的,struts标签我就不说了,就给你写个带Java代码的例子:
做一个跳转到这个页面的逻辑处理
在这里从数据库提取option中需要的数据
然后放在集合里
例如:
String hql="from MtFieldType";
List list = getHibernateTemplate().find(hql);
然后将值提交到跳转到的页面
request.setAttribute("typeList", typeList);
return mapping.findForward("findAll");
(这里可以用session也可以用request)
以下是页面端的代码
//导入的实体类和List的util包,导包的代码要写在代码页面的顶端
&%@page import="com.rundasoft.coal.model.MtFieldType"%&
&%@page import="java.util.*"%&
&select id="typeName" name="typeName" &
&option disabled="disabled" value=""&-请选择-&/option&
List&MtFieldType& list = (List)request.getAttribute("typeList");
//MtFieldType对应的实体类
MtFieldType mtFldType =
for(int i=0;i&list.size();i++){
mtFldType = (MtFieldType)list.get(i);
&option value='&%=mtFldType.getId()%&'& &%=mtFldType.getTypeName()%& &/option&
最后用个&from&提交就行了!
加载页面的时候,用jstl的标签或者用jsp内嵌的程序语句循环遍历从数据库拿到的数据,注意,数据里只包含id和名称,id绑定在option的value中,name用来显示。每次选择下拉框的时候,都会触发select的onchange事件。onchange事件的响应方法为change(obj),这个方法是用java script写的,参数为id,然后用ajax把id作为参数发送到后台取得该id的数据,最后更新到页面即可。
绑定id不就完了么,onchange事件再更新相应的文本框。
已解决问题
未解决问题}

我要回帖

更多关于 vue select 点击事件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信