0

虽然其他浏览器看起来不错,但 IE7 对我的 10 行 javascript 并不友好。

所有(小)代码都可以在这里找到:http: //jsfiddle.net/7nGd9/

$(function() {
    $('#prepareSpecificProgressModal')
        .each(function(index, modal) {
            var
                modal = $(modal),
                form  = $('#myform');

            form.on('change', 'select', function(){
                 var node = $(this);
                    node
                        .closest('form')
                        .find('select').not(this)
                        .each(function(i, element){
                             element.selectedIndex = -1;
                        });
            });
        });
});

$(element).val('');用来重置选项的选择,但它在 IE7 下不起作用。基本上它允许在 3 个选择中进行多项选择,即使有 JS 应该阻止它。

感谢您的任何建议。

4

2 回答 2

2

尝试

.each(function(i, element) {
    element.selectedIndex = -1;
})

取消选择所有选项(演示)。each或者,您可以.prop("selectedIndex", -1)等效地使用而不是循环(也可以使用.val(''))。

顺便说一句,根据文档.val(),您可以传递一个选项数组来选择(或null代替空数组):

.val([]);

演示

于 2012-10-22T13:07:39.670 回答
2

select您可以选择所有选项并将 更改为,prop而不是设置 的值false

.find('select[id!='+node.attr('id')+'] option').prop('selected', false);

http://jsfiddle.net/9NPf5/

..或两者兼而有之:

.find('select[id!='+node.attr('id')+'] option').prop('selected', false).parent().val('');

http://jsfiddle.net/n3jCs/

于 2012-10-22T13:05:26.083 回答