我有这个代码正在寻找一个onchange事件:
//Create destination switch
$('#regionselect').change(function(){
var selected = $(this).find(':selected');
$('.optionvalue').fadeOut(function(){
$('.optionvalue').html(selected.html()).fadeIn()
.attr('class', 'optionvalue '+selected.val());
});
var count = $('.countrylist').length;
$('.countrylist').slideUp(function(){
if(!--count) {
$('.'+selected.val()).slideDown();
}
});
});
在这里完美运作: http://jsfiddle.net/XfPv7/1/
有人可以帮忙吗?
答案 0 :(得分:1)
//This worked for me - I appear to have inherited similar jquery custom select code
function onChange()
{
var el=document.getElementById("selectid");
//el.options[] is your array of options
if (el.options[0].selected==true)
//Some code
}
答案 1 :(得分:0)
在小提琴中你使用{live'网站上的select
,你使用了一些自定义select
(div)
$('.outtaHere ul li a').click(function() {
// do you stuff to show the elements
});
我不知道您是否可以更改自定义选择的代码,但删除内联的JavaScript代码会更清晰。
答案 2 :(得分:0)
你真正的问题是:
http://www.thestc.co.uk/assets/js/form.js
这里的脚本包括函数populateSelectOptions()
,selectMe()
,showOptions()
,它们共同用于击败您真正的选择onChange事件处理程序,因为您没有与真正的选择交互所有
如果你杀了select替换脚本,它可以正常工作。请参阅:http://jfcoder.com/test/customselect.html
修改强>
这是解决问题的一种蛮力方式。
function setDestOpts(dest) {
reg = $('#regionselect');
reg.val(dest);
reg.trigger('change');
$('#optionsDiv8').removeClass('optionsDivVisible').addClass('optionsDivInvisible');
}
var checkDest = function() {
if ($('#optionsDiv8').length == 0) return;
clearInterval(destinterval);
c_opt = 0;
$('#optionsDiv8 ul li a').each(function(c_opt){
reg = $('#regionselect option');
href = "javascript:setDestOpts('" + reg.eq(c_opt).val() + "');";
$(this).attr('href', href);
c_opt++;
});
}
var destinterval = setInterval(function(){checkDest()}, 500);
http://jfcoder.com/test/customselect.html
所有这一切都是改变注入A.HREF的Javascript,这是根本问题。这模拟了值的变化,然后触发onChange事件。
注意,由于某种原因,jQuery没有加载到我网站上该链接的每个页面加载,所以如果它第一次不起作用,请在完全加载后重新加载页面。