2011-03-13 97 views
27

我有一個海拉時間設置隱藏輸入的值。JQuery:更改隱藏輸入字段的值

我想將選項標籤之間的HTML傳遞給隱藏的字段結束運行它將從wordpress'wp_list_dropdowns()頁面標題。我已經得到它返回文本很好,並在我的更改事件正確地添加了一些CSS(顯然不需要在隱藏的領域,但我試圖確定事情在哪裏打破)。如果我將隱藏的輸入更改爲文本輸入,則適用。我在幾個地方看到過,這是可能的,(改變隱藏輸入的價值),但是現在有些東西讓我感到難以接受,我看不到答案。

這裏的JSFiddle

的JavaScript:

$(".selector").change(function() { 
    var $value = $(this).val(); 
    var $title = $(this).children('option[value='+$value+']').html(); 
    alert($title); 
    $('input#bacon').val($title).css('border','3px solid blue'); 
}); 

HTML:

<select class="selector" name="testselect"> 
    <option value="1">One</option> 
    <option value="2">Two</option> 
    <option value="3">Three</option> 
</select> 
</h3> 

<input id="bacon" type="hidden" class="bacon" value="" name="testinput"> 
+1

你的小提琴在我的Firefox中工作。我使用Firebug進行了檢查,隱藏輸入的值是否發生了變化,當我在下拉列表中選擇不同的值時,它會發生變化。也許我不明白這個問題,但:-) – StefanS 2011-03-13 12:46:28

+0

對我來說工作正常:在Chrome 9中隱藏的輸入值被改變了。在哪個瀏覽器中它不適合你,以及你使用什麼方法驗證它? – 2011-03-13 12:46:54

+0

你爲什麼認爲它不能正常工作?你的小提琴似乎完全按照你所說的去做。 – Aaron 2011-03-13 12:47:10

回答

17

你的jQuery代碼完美工作。 The hidden field is being updated

+1

但爲什麼這會失敗http://jsfiddle.net/YvBfP/ – max4ever 2012-12-28 14:32:12

+3

@ max4ever您正在閱讀序列化的HTML,其中'value'屬性將反映其原始值。您不應盲目使用「innerHTML」相關方法的諸多原因之一。 – alex 2012-12-29 00:12:58

5

似乎工作

$(".selector").change(function() { 

    var $value = $(this).val(); 

    var $title = $(this).children('option[value='+$value+']').html(); 

    $('#bacon').val($title); 

}); 

與螢火蟲只是檢查。不要把CSS放在隱藏的輸入上。

+1

現在似乎工作。我把CSS作爲一個非常粗糙的jQuery調試工具...在firebug中查看我是否使用了正確的選擇器。我一定需要休息一下。新鮮的眼睛和飽滿的胃已經解決了什麼顯然沒有被破壞(一次)。 – helgatheviking 2011-03-13 14:20:43

0

如果你在Drupal中做這件事,並且使用Form API在hook_form_alter(例如)中將#type從文本更改爲'hidden',那麼請注意輸出HTML將具有不同的(或省略的)DIV包裝器,ID和類名稱。

27

很簡單:

$('#action').val("1"); 

#action是隱藏的輸入字段的ID。

+0

像魅力一樣工作! – ersnh 2015-10-26 11:38:26