0

私は何日もこれに固執しているので、皆さんが与えることができるどんな助けにも大いに感謝します。前もって感謝します!!これが私の問題です:

選択リストがあります:

<select id="bandCategories">
  <option>(Choose a category)</option>
  <option>Djent</option>
  <option>Brutal Death Metal</option>
  <option>Deathcore</option>
  <option>Hardcore</option>
  <option>Slam</option>
  <option>Verb the Noun</option>
</select>

そして、これらに関連する変数は次のとおりです。

var bandCategories = document.getElementById("bandCategories");
var chooseCategoryStr = bandCategories.options[0].text;
var selectedCategory = bandCategories.options[bandCategories.selectedIndex].text;

bgChange()デフォルトの「(カテゴリを選択)」が選択されている場合を除いて、選択したオプションが変更されるたびに実行したいという関数があります。私は以下を試しましたが、役に立ちませんでした:

if(selectedCategory != chooseCategoryStr){
    selectedCategory.onchange = bgChange(selectedCategory);
};

ヘルプ?再度、感謝します :)

4

2 に答える 2

2

これを試して

  <select id="bandCategories" onchange="fun()">
  <option>(Choose a category)</option>
  <option>Djent</option>
  <option>Brutal Death Metal</option>
  <option>Deathcore</option>
  <option>Hardcore</option>
  <option>Slam</option>
  <option>Verb the Noun</option>
</select>
<script type="text/javascript">
<!--
    function fun()
    {
        var bandCategories = document.getElementById("bandCategories");
        var chooseCategoryStr = bandCategories.options[0].text;
        var selectedCategory = bandCategories.options[bandCategories.selectedIndex].text;
        if(selectedCategory == chooseCategoryStr){
                return;// no need to call your function bgChange
        }

        alert("bgChange(selectedCategory);"); //Call your function bgChange(selectedCategory);
    }
//-->
</script>

コードを実行する前に、bgChange等しくない値をチェックするために新しい関数を追加せずに、関数に編集を追加することもできます。chooseCategoryStr

于 2013-03-03T03:18:16.940 に答える
0

次のJavaScriptコードが機能するはずです。HTMLを変更する必要はありません。

var bandCategories = document.getElementById("bandCategories"),
    chooseCategoryStr = bandCategories.options[0].value;

bandCategories.onchange = function () {
    var selectedCategory = this.value;

    if (selectedCategory !== chooseCategoryStr) {
        bgChange(selectedCategory);
    }
};

これが期待される結果のjsFiddleです。

于 2013-03-03T03:21:23.270 に答える