jquery 事件在不同浏览器对于事件不兼容怎么回事 5
求大神帮我看一下循环出select里面的内容获取点击的value值但运行到这里我测试alert一下获取的值除了firefox其他浏览器都不能输出$select_id的值这...
求大神帮我看一下 循环出select里面的内容 获取点击的value值 但运行到这里 我测试alert一下获取的值 除了firefox 其他浏览器都不能输出$select_id的值 这是怎么回事?
展开
5个回答
展开全部
应该给select绑定change事件,没有给option绑定click事件的。
$(function() {
$id = 'id';
$parent_id = 'parent_id';
$('select').val($id).bind('change', function () {
// click函数复制到这里
});
});
更多追问追答
追问
这样写是可以获取到值 但是在里面写的button提交 就无效了
追答
这里不需要监听select的change事件,button的click事件里获取值就可以了
button改button_new的地方也很奇怪,为什么要这样做呢?
$id 这个变量不是jquery对象,所以前面不用加$吧。
使用jquery的时候变量名前加$的习惯是为了区分jquery对象。
$obj = $('#id') // $obj存的是jquery对象
sId = 'id'; // sId存的是字符串
改了一下,试试下面的
$(function(){
var id = <?php echo $_REQUEST['id'];?>;
var parent_id = <?php echo $_REQUEST['parent_id']; ?>;
$('select').val(id);
$('#button').click(function () {
name = $('#name').val();
status = $('input[name="status"]:checked').val();
select_id = $('select').val();
if(name && status) {
postdata(select_id, 1);
}
});
});
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
this在匿名作用域里 指向改变了
你试着
var that = this;
$(this).bind('click',function(){
// 这样写 看可以不
$seletc_id = $(that).val();
// 或者 $seletc_id = $(event.target).val();
})
更多追问追答
追问
都试了 还是拿不到值
追答
IE、Chrome都不支持option的click事件
FF 和 OPERA支持
所以如果select 的change能做到的
最好还是绑change
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
您好:这个不是js的问题,是您jqeury选择器的问题.$("option[value='']").attr()这句.属性选择器在浏览器中有兼容性问题.建议换一个写法,不要用属性选择器.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我想说,你click的不是一个input吧,你把.val()改成.text()看看?啊呀,采纳的和我的一样的啦,我的被无视了~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询