ドロップダウンを変更してページを更新すると、Firefoxは選択した属性を無視するようです。
<option selected="selected" value="Test">Test</option>
実際、以前に選択したオプションが(更新前に)選択されます。他のことを変更するドロップダウンでトリガーされるイベントがあるため、これは最終的に私にとって問題になります。 firefoxにこの動作を停止させる方法はありますか(ページの読み込み時に別のイベントを発生させる以外に)?
知る限り、この動作はFirefoxにハードコードされています。
ページの読み込み時に、各フォーム要素をそのdefaultValue
に設定してみてください。
追加 autocomplete="off"
すべての選択タグのHTML属性。 (ソース: https://stackoverflow.com/a/8258154/26008 )
これにより、FireFoxのODDの動作が修正されます。
Firefoxでは、フォームが名前属性を持つフォーム内にselectを配置しない限り、「selected」属性が機能しないことに気付きました。
ちょうど同じ問題があり、この愚かなFirefoxの動作に10時間以上苦労していたと信じて、私は7つのドロップダウンを持っています、それぞれがイベントをトリガーし、24の隠された入力を埋めます24の間違った入力値!!!私が最後に見つけた解決策は、次のコード行を追加するJavascriptでフォームをリセットすることです:
window.onload = function() { document.forms['MarkerForm'].reset(); };
PS:入力はデータベースから取得した値を持っているので、フォームをリセットしても値が空になることはありませんが、ある意味では、Firefoxにselected = selectedオプションに戻ります。
更新時に以前の選択を記憶しているのはFirefoxだけです。代わりにハードリフレッシュを試してください。
また、ここで同じ問題: https://stackoverflow.com/a/1505693/1069232
こちらもご覧ください: https://bugzilla.mozilla.org/show_bug.cgi?id=274795
FF 25.0.1を使用しています
selected=""
とselected="selected"
は無視されます。
しかし、単にselected
を試すと、オプションが選択されます。
奇妙な(非準拠)動作。 selected
は有効なHTML5であり、最も短い形式であることは知っていますが、通常は整形式XMLとしても検証するコードを書くので、XML検証ツールを使用して非常に厳密な方法で結果を確認できます(およびデータ交換はとても簡単です...)
W3Cによると、これらのバリアントはブール属性で有効である必要があります。
HTML5: boolAttr="" | boolAttr="boolAttr" | boolAttr
XHTML5: boolAttr="" | boolAttr="boolAttr"
最初の方が好きです。これは最後の(xml準拠ではない)バリアントとほぼ同じくらい短いですが、XHTML5とHTML5の両方として検証する必要があります。だから、Mozillaがそれを修正することを願っています!
.attr()の代わりに.prop()を使用します
This does not work in firefox.
$( 'option[value="myVal"]' ).attr( 'selected', 'selected' );
use this one
$( 'option[value="myVal"]' ).prop( 'selected', 'selected' );
In other way
$( this ).prop( 'selected', 'selected' );
名前の方が良い= >>
form id="UMForm" name="UMForm" class="form"
選択は、選択された属性を取ります
ページを更新する前に、フォームで.reset()
を呼び出すことができます。
_<option selected="selected" value="Test">Test</option>
_
この場合、これはChromeとFirefoxの両方で機能しました。
_$('option[value="Test"]').prop('selected', true);
_
私は.attr()
の代わりに.prop()
を使用していました
_autocomplete="off"
またはform
内に配置することでうまくいきます。
workedは、選択した属性のみを使用することでした「値」なし
<option @(Model.Source == TermSource.Instagram ? "selected" : "")>
Instagram
</option>
<option @(Model.Source == TermSource.Facebook ? "selected" : "")>
Facebook
</option>
そのため、<option selected>...</option>
、 あるいは単に <option>...</option>
オートコンプリートも機能していませんでした。
これは私が使用するjqueryで書かれたjavscriptの修正です:
$('input[type="radio"][selected]').click();
フォーム属性でselectを囲むと機能します。
<!-- will not work in firefox -->
<option selected="selected" value="Test">Test</option>
そして
<!-- this will work in firefox -->
<form>
<option selected="selected" value="Test">Test</option>
</form>
選択入力のautocomplete
属性を無効にしてみてください。ブラウザはselect
を無視することがあります
Mozillaのバグかもしれませんが、ドロップダウンに名前を付けてみてください。
ドロップダウンの最初のアイテムを表示するには、ProjectName.ClearSelection();
を使用します
すべてのブラウザで動作するようにデザインページに行を配置し、ページの読み込み時にコードビハインドにもこれを配置します。
$(document).ready(function () {
$("#content_ProjectName option[value='1']").prop("selected", true);
});
職場で、選択ボックスオプションが同じWebページのChromeで正しく表示されていたがFirefoxでは表示されていなかったバグを修正しました。ただし、発生している問題である可能性があります。
Chromeでは、選択ボックスのフォント色は黒でした。 Firefoxの何らかの理由で、選択ボックスはコンテナからfont-colorを継承しました。これは白でした。選択ボックスのフォント色を強制的に黒にするCSSルールを追加すると、値セットが適切に表示されました。
これは私の解決策です:
var select = document.getElementById('my_select');
for(var i=0; i < select.options.length; i++){
select.options[i].selected = select.options[i].attributes.selected != undefined;
}
(適切なIDを設定して)ページの一番上にそれを置くだけで、うまくいきます。 getElementByIdをページ上のすべての選択に対するループに置き換えて、読者のための演習として残します;)。
選択を変更してページを更新すると、Firefoxがフォームの変更を復元するため、選択が機能していないように感じます。更新する代わりに、新しいタブでリンクを開いてみてください。
私にとって、上記の解決策はどれもうまくいきませんでした。何も設定されていない場合、選択を明示的に設定する必要がありました。
if (foo.find(':selected').length === 0) {
$(foo.find('option')[0]).attr('selected', 'selected');
}
私はFirefoxがこれを修正することを望みます:(