-1

遅れており、これはおそらく非常に簡単な修正です。これをカバーするスタックオーバーフローに関する彼女の投稿をいくつか見ましたが、今はこれを機能させることができないようです。

ケースには、7つのオプションを選択しています。すべてのオプションの値フィールドには、1 から 7 までの数字があります。

html

<select id="thecase" name="thecase">
    <option value="1">Velg hva saken gjelder:</option>
    <option value="2">Transportskade</option>
    <option value="3">Stengt bestilling</option>
    <option value="4">Finansiering</option>
    <option value="5">Ros & ris</option>
    <option value="6">Bedrift</option>
    <option value="7">Annet</option>
</select>

JavaScript

var hiddenOpt = jQuery("#option_other");
var target = jQuery('#thecase');
var caseVal = target.val();
hiddenOpt.hide();
target.change(function(){
    alert (caseVal);
    if (target == 'annet') {
        hiddenOpt.show();
    };
});

このコードを試してみると、値 1 が返されます。ここにフィドルがあります:http://jsfiddle.net/Danbannan/QM2U8/

誰かが私に何が欠けているのか説明してもらえますか? 前もって感謝します。

4

7 に答える 7

2

var caseVal = target.val();関数の中に入れchangeます。最初はselect値が 1 で、それが に保存されますが、値が変化caseValしたときに値を取得する必要があるため、変更関数の内部を取得する必要があります。あなたも使うことができますselecttarget.val()$(this).val()

http://jsfiddle.net/QM2U8/2/

于 2013-10-03T04:43:34.130 に答える
2
var caseVal = target.val();

すぐに値を取得していますが、.change()関数で値を変更することはありません

そのはず

target.change(function(){
    caseVal = this.value;
    if (target == 'annet') {
         alert (caseVal);
        hiddenOpt.show();
    };
});
于 2013-10-03T04:43:53.730 に答える
1
var caseVal = target.val();

これはonloadイベントでのみ定義されます。したがって、それはstaticです。そのため、イベントで初期化して動的にする必要があります。change

于 2013-10-03T04:45:59.283 に答える
0

実際に私のコードを見てください。

これに対する正しい答えは次のとおりです。

target.change(function(){
    caseVal = this.value;
        /*Not the target, the caseVal*/
    if (caseVal == '7') {
         alert (caseVal);
        hiddenOpt.show();
    };
});
于 2013-10-03T04:50:37.140 に答える
0

簡単な修正:

var hiddenOpt = jQuery("#option_other");
var target = jQuery('#thecase');

hiddenOpt.hide();
target.change(function(){
    var caseVal = target.val();
    alert (caseVal);
    if (target == 'annet') {
        hiddenOpt.show();
    };
});

変数 caseVal は target.change 関数の外にあるため、初期値を取得し、常に取得していました。中に入れて更新します..出来上がり

于 2013-10-03T04:51:27.073 に答える
0

これを試してみてください: - http://jsfiddle.net/adiioo7/QM2U8/3/

var hiddenOpt = jQuery("#option_other");
var target = jQuery('#thecase');
hiddenOpt.hide();
target.change(function () {
    var caseVal = target.val();
    alert(caseVal);
    if (target == 'annet') {
        hiddenOpt.show();
    };
});
于 2013-10-03T04:43:57.153 に答える
0

あなたcaseValはイベントの前に値を取得しています。したがって、次のように変更する必要があります。

target.change(function(){
    caseVal = $(this).val();
    alert (caseVal);
});
于 2013-10-03T04:49:32.813 に答える