ホームページ >ウェブフロントエンド >jsチュートリアル >IE8 の Jquery は、select で選択された値を取得してバックグラウンドにポストし、error_jquery を報告します。
通常、select を取得するために jquery を使用する場合、通常は次のように使用します。
<select id='a'> <option selected='selected' value='1'> </select> var selectedValue = $("#a").val();
IE8 以外では、selectedValue の値は「1」、selectedValue の type は「string」です。
IE8 では、selectedValue の値は ["1"]、selectedValue の type は "objectg" です。
selectedValue ポストをバックグラウンドに直接送信すると、送信プロセス中に selectedValue が IE8 では配列として扱われ、バックグラウンドで認識できないため、バックグラウンドがそれを受信したときにエラーが報告されます。
解決されたコードは次のとおりです:
selectedValue = typeof selectedValue == "object" ? selectedValue[0] : selectedValue;
このように、selectedValue は文字列です。
さらに、これは他の問題を引き起こします:
var a = selectedValue.trim();
このコードは IE8 では実行できません。上記の理由も考えられます。
次のコードを使用して、機能することを確認します。
$.trim(selectedValue);