2012-09-21 39 views
3

我的意思是,我覺得自己像個白癡,但即使搜索了將近兩個小時後,我似乎也無法得到正確的結果。onchange事件的語法,用於更新帶有選擇框索引值的隱藏文本框

這個選擇後跟一個隱藏的文本字段:

<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); 
    }); 
}) 

//也許我只是累了。但現在是時候尋求幫助了。提前致謝。

回答

2

我認爲應該通過採取 「這個」 出來的是

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

$('.switch').change 

既不

$('.select').change 
+0

謝謝。所以.syntax可以解決這種風格,並且沒有點的輸入類型。謝謝。 –

+0

是的。那就對了。所以,如果這解決了你的問題,你可以接受答案。 – balafi

1
var selectedValue = $("option:selected").val(); 

作品中的jsfiddle。

+0

如果頁面中有6個選擇元素,每個元素都帶有選定的選項,那麼您將得到什麼值? – RobG

1

在收聽者中,this引用該元素。您也可以從選擇元素的名稱隱藏元素的名稱,因此,如果他們是在一個形式:

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

,你就沒有一個單一的函數調用來完成。

+0

令人印象深刻。非常感謝你。 所以,this.form ['my_text_box_name']。value = this.value; 完美。 –