3

つまり、私はまったくの馬鹿のように感じますが、ほぼ 2 時間検索した後でも、これを正しく理解できないようです。

この選択の後に、非表示のテキスト フィールドが続きます。

<select name="location_id" class="select green-gradient" single>
  <option value="2">New York</option>
  <option value="3">London</option>
  <option value="4">Singapore</option>
  <option value="5">San Francisco</option>
  <option value="6">Milan</option>
</select>
<input type='text'  name="selected_location_id" class="hidden" value="">

// 通常、このコードはチェックボックスに使用します。非表示のテキスト ボックスの内容を切り替えます。選択の値のチェックが異なることを理解しています。しかし、私はそれを正しく理解できないようです。

$(document).ready(function(){
    $('.switch').change(function( ){
        if($(this).next().val() == 1){
            $(this).next().val(0);
        } else {
            $(this).next().val(1);
        }
    });
})

// 試してみましたが、ページ上のすべての選択に対してこれを行う必要があるため、役に立ちません。非表示のテキスト ボックスはまだ更新されません。

$(document).ready(function(){
   $('.select').change(function( ){
     var selectedValue = $(this "option:selected").val();
     $(this).next().val(selectedValue);
   });
})

// 疲れているだけかもしれません。しかし、助けを求める時が来ました。前もって感謝します。

4

3 に答える 3

2

そうあるべきだと思う

$('select').change ///(without the dot)

いいえ

$('.switch').change

ない

$('.select').change
于 2012-09-21T00:35:53.490 に答える
1
var selectedValue = $("option:selected").val();

「this」を取り除くことで、jsfiddle で動作します。

于 2012-09-21T00:36:13.400 に答える
1

リスナー内でthis、要素を参照します。select 要素の名前から隠し要素の名前を取得することもできるので、それらがフォームにある場合:

this.form['selected_' + this.name].value = this.value;

これで、関数呼び出しを 1 つも行わずに完了です。

于 2012-09-21T02:04:07.693 に答える