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では機能しません。基本的に、それを防ぐことになっているJSがある場合でも、3つの選択全体で複数の選択が可能です。

アドバイスありがとうございます。

4

2 に答える 2

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 に答える
2

試す

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

すべてのオプションの選択を解除するには(デモ)。または、eachループの代わりに、.prop("selectedIndex", -1)同等に使用できます(も使用できます.val(''))。

ところで、のドキュメントに.val()よると、選択するオプションの配列を渡すことができます(またはnull空の配列の代わりに):

.val([]);

デモ

于 2012-10-22T13:07:39.670 に答える