フィルタリングされているドロップダウンリストがあります(例..(toggleOptionVisibilityはオプションの周りにスパンを配置し、trueの場合、スパンが表示されます)):
case 'Actimel drank naturel':
$(eenheid + ' option[value="101"]').toggleOptionVisibility( true );
$(eenheid + ' option[value="102"]').toggleOptionVisibility( true );
$(eenheid + ' option[value="103"]').toggleOptionVisibility( true );
$(eenheid + ' option[value="116"]').toggleOptionVisibility( true );
break;
case 'Roosvicee multivit (siroop)':
$(eenheid + ' option[value="101"]').toggleOptionVisibility( true );
$(eenheid + ' option[value="102"]').toggleOptionVisibility( true );
$(eenheid + ' option[value="103"]').toggleOptionVisibility( true );
$(eenheid + ' option[value="104"]').toggleOptionVisibility( true );
$(eenheid + ' option[value="111"]').toggleOptionVisibility( true );
$(eenheid + ' option[value="116"]').toggleOptionVisibility( true );
break;
フィルタリングは機能しますが、私のやり方の例を示しているだけです。
問題は、フォームを送信するときに選択したものは何でも、selected="selected" はユーザーが選択したものです (IE で動作します) が、ドロップダウンリスト自体は Firefox で最後から 2 番目の値を表示し、最後の値を表示します。クロムで。
selected="selected" は、firefox や chrome でも、ユーザー入力のままです。
そして、これが私の質問です。なぜこれが起こっているのか、なぜChrome / firefoxではなくIEで機能するのか知っていますか?
みんなコードが好きなので、もう少し投稿します。
$(eenheid + ' option').toggleOptionVisibility( false );
フィルタリングされる前にすべてのオプションを非表示にして、フィルタリングされたオプションのみが表示されるようにします。