0

オプションを追加しようとしたときに価格計算機に問題が発生しました。(ここの jsFiddle = http://jsfiddle.net/wemdragon/ZG8m )

私がやろうとしているのは、それが言うところです:

var firstoption=$('select#myselect')

オプションの値を価格の値に変換したいのですが、できないようです。ショッピング カートでは機能しますが、JavaScript では機能しません。

間違った場所に値を追加しようとしているのかもしれません。何が問題なのかわかりません。

4

1 に答える 1

2

select id (少なくともフィドル) は camelCased asmySelectでしたが、 id にアクセスしようとしていました#myselect。マークアップの ID を変更しない限り、これは次のようになります。

var firstoption = $('select#mySelect');

また、オプションを選択しないためにデフォルト値 0 を指定したことにも気付きました。何らかの理由で!firstoption.val()、val() がゼロの場合、if ステートメントが期待しているように見えるように、true ではなく false を返します。この場合、!0 は明らかに true です。

あなたのマークアップに合わせてロジックを変更したところ、あなたが期待または望んでいたように動作するようでした:

if (firstoption.val() == 0) {
    error.html('Please include an option!');
    firstoption.focus();
}

更新されたフィドルを編集: http://jsfiddle.net/ZG8mv/8/

これで、focus() の実行が間違っている順に表示されます。つまり、幅オプションも指定されていない場合、そのボックスがフォーカスを受け取ります。以前は、オプション メッセージが他の 2 つよりも優先されていました。

于 2012-04-16T20:40:19.520 に答える