私は興味深い小さな問題に遭遇しました。それはおそらく私がばかげているだけです。
私はこのように少し見える選択ボックスを持っています:
<select id="dom_" name="dom_">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
...
オプションは月の日を表し、最大31まで表示されます。
さて、(編集用に)情報を含むフォームをロードするときにデフォルト値を選択しようとしましたが、正しく機能させることができませんでした。
以前のSOの質問で見つけたこのスニペットを使用してみました。
$("#dom_ option[value$='" + 2 + "']").attr('selected', true);
この行が実行され、2番目のオプションが選択済みに設定されますが、他の2XまたはX2オプションも選択済みに設定されます。たとえば、12と22も選択に設定されます。
ただし、これを使用する場合:
$("#dom_ option").each(function()
{
if ($(this).val() == 2)
{
$(this).attr('selected', true);
}
else
{
$(this).attr('selected', false);
}
});
次に、正しいオプションが選択されますが、SELECT
ボックスは更新されません。
$("#dom_").val(2);
ボックスを更新するには、手動でアフターワードを呼び出す必要があります。
だから、私の質問は、なぜ最初のオプションが機能しないのか、そしてなぜ2番目のオプションが自動更新されないのかということです。
SELECT
また、オブジェクトを経由$("#dom_")
して呼び出す.val
ことと、オプションを取得しselected
てtrueに設定することの違いは、正確には何ですか?POST
これらの両方が同じまたはGET
データを送り返しますか?
これは、うまくいけばこれを示すjsFiddleです。
それが役立つ場合は、JQuery 1.6.4を使用していますが、jsFiddleのいくつかの新しいバージョンで同じ問題を再現できます。
この質問が単純すぎる場合は、お詫び申し上げます。JavaScriptとJQueryに関しては、私はまだかなりアマチュアです。