【问题标题】:Can not show changed value to hidden field with javascript无法使用 javascript 将更改的值显示到隐藏字段
【发布时间】:2013-08-31 17:37:21
【问题描述】:

我有一个复选框和 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,我正在使用从服务器获取的数据设置表单输入字段的值。

如果复选框的值为真,我也会显示隐藏字段:

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

这行得通

每个字段都设置正确,接受隐藏字段,该字段为空。

奇怪的是,我在该隐藏字段的值设置后设置了警报,并且警报显示了应该设置的值但该值不可见

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

注意:js代码其实是coffescript。

【问题讨论】:

  • 如果alert $('.te-len').val()是正确的,“值不可见”是什么意思?

标签: javascript jquery ruby-on-rails forms hidden-field


【解决方案1】:

我认为问题在于您将值设置为div。尽管val 的使用有效,但此函数主要用于inputselecttextarea 等表单元素。

如果您要替换div.te-len 的内容,那么您可以使用htmltext

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

但听起来您正试图在 input.exerciseLength 数字字段中显示 data[selected].length 值。为此,您应该使用:

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

【讨论】:

  • 我不小心把 te-len 类放到了 div 而不是那个 div 里面的输入
猜你喜欢
  • 2018-12-07
  • 2010-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多