3

我的意思是,我觉得自己完全是个白痴,但即使搜索了近两个小时,我似乎也无法做到这一点。

此选择后跟一个隐藏的文本字段:

<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

在侦听器中,this引用元素。您还可以从选择元素的名称中获取隐藏元素的名称,因此如果它们在表单中:

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

并且你没有一个函数调用就完成了。

于 2012-09-21T02:04:07.693 回答
1
var selectedValue = $("option:selected").val();

通过取出“this”在 jsfiddle 中工作。

于 2012-09-21T00:36:13.400 回答