2013-08-31 38 views
0

我有一個複選框和2個輸入字段:無法顯示改變的值,以隱藏字段的JavaScript

<input name="exercise[hold]" type="hidden" value="0"><input class="te-cb" id="exercise_hold" name="exercise[hold]" type="checkbox" value="1"> 
<input class="exerciseReps input-mini" id="exercise_number_of_reps_in_set" min="0" name="exercise[number_of_reps_in_set]" placeholder="Reps" type="number" style="display: none; "> 
<div class="input-append te-len" style="display: inline-block; "> 
    <input class="exerciseLength input-mini" id="exercise_length" min="0" name="exercise[length]" placeholder="Length" type="number"> 
    <span class="add-on">sec</span> 
</div> 

一個輸入字段隱藏與JS:

$('.te-len').hide() 

在形式上面有也有自動競爭的文本輸入字段,它用ajax獲取數據(在這裏不重要)。使用jquery,我使用從服務器獲得的數據來設置表單輸入字段的值。

我也顯示隱藏字段如果複選框值爲true:

if data[selected].hold 
    $('.exerciseReps').hide() 
    $('.te-len').show() 

和工作

每個域的設置正確接受隱藏字段,該字段爲空。

奇怪的是,我把該隱藏字段的值的警報已設置後警報顯示,應該已經設定的值,但該值是不可見的

$('.te-len').val(data[selected].length) 
alert $('.te-len').val() 

注:js代碼實際上是coffescript。

+0

如果'alert $('。te-len').val()'是正確的,那麼您的意思是「該值不可見」? – Baldrick

回答

2

我認爲這個問題是因爲你的設置值爲div。儘管使用了val,但該函數主要用於表單元素,如input,selecttextarea

如果你的意思是更換div.te-len的內容,那麼你可以使用任何htmltext

$('.te-len').html(data[selected].length) 

但它聽起來像你想顯示在input.exerciseLength數字字段data[selected].length值。爲此,您應該使用:

$('#exercise_length').val(data[selected].length) 
+0

我不小心把Te-len類放到div裏,而不是在div裏面輸入 – Azaryan