我有一个复选框和2个数字输入字段:
<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 :(得分:2)
我认为问题在于您将值设置为div
。虽然使用val
有效,但此功能主要用于表单元素,例如input
,select
和textarea
。
如果您要替换div.te-len
的内容,则可以使用html
或text
:
$('.te-len').html( data[selected].length )
但听起来您试图在data[selected].length
数字字段中显示input.exerciseLength
值。为此您应该使用:
$('#exercise_length').val( data[selected].length )