更改自定义选择选项的值-Javascript

更改自定义选择选项的值-Javascript,javascript,jquery,Javascript,Jquery,我需要帮助更改自定义选择框的值。我不能使用JQuery,因为我已经有一个change()函数连接到它 如何在Javascript中更改选择框的值 这是我的自定义选择功能: $.fn.customSelect = function() { if ( $(this).length ) { $(this).find('select').attr('selectedIndex',-1).change(function() { var optionText = $(this).fi

我需要帮助更改自定义选择框的值。我不能使用JQuery,因为我已经有一个change()函数连接到它

如何在Javascript中更改选择框的值

这是我的自定义选择功能:

$.fn.customSelect = function() {
if ( $(this).length ) {
    $(this).find('select').attr('selectedIndex',-1).change(function() {
        var optionText = $(this).find('option:selected').text();
        $(this).siblings('label').text(optionText)
    });
}
})

我试过:

var field = document.getElementById('test5');
field.value = '2';
field.focus();
这将选择选项,但它不会显示为默认选项(希望你们能够理解这一点,哈哈)


有什么可能的解决办法吗?

我举了一个简单的例子来说明我想做什么

您需要调用更改事件来运行插件代码,还需要name更改事件:

$.fn.customSelect = function() {
    if ( $(this).length ) {
        $(this).find('select').attr('selectedIndex',-1).bind('change.customSelect', function() {
            var optionText = $(this).find('option:selected').text();
            $(this).siblings('label').text(optionText)
        });
    }
};
像这样触发:

$('#select1').val('1').trigger('change.customSelect');

是的,我一直在使用更改事件,但是在更改事件中调用了另一个函数。。。这导致它被调用两次。如果在中没有办法做到这一点,我可能不得不改变实现javascript@yookd-我更新了fiddle,这样你就可以看到它不会触发另一个绑定更改事件。啊,这需要整个站点进行大量更改(不幸的是,我们有很多选择框)。谢谢你,如果我有时间改变一切,我可以用这个。