如何在Min Miles文本字段中显示上一个值

时间:2013-05-21 05:54:12

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2

enter image description here

我想在Min Miles上显示先前的值,但不应该是可编辑的。我想要

  1. Min Miles的默认值为0.
  2. 当我点击添加更多范围然后在新表格中 - 最小值应为上一表格的最大值。
  3. 我正在使用语义形式。请帮我。我怎么能这样做......

2 个答案:

答案 0 :(得分:1)

关于你的第二个问题,并假设通过javascript显示新表单,没有页面重新加载,你可以抓住     使用javascript的字段值并将其用作默认值     新领域。 "添加新范围"

  

有点像    function getvalue(){
      var inputTypes_max = [],inputTypes_min = [],inputTypes_amount = [];

$('input[id$="max_miles"]').each(function(){
  inputTypes_max.push($(this).prop('value'));
});

$('input[id$="amount"]').each(function(){
  inputTypes_amount.push($(this).prop('value'));
});

var max_value_of_last_partition = inputTypes_max[inputTypes_max.length - 2]

var amount_of_last_partition = inputTypes_amount[inputTypes_amount.length - 2]
if (max_value_of_last_partition == "" || amount_of_last_partition == "" ){

  alert("Please Fill Above Details First");
}else{
  $("#add_more_range_link").click();
  $('input[id$="min_miles"]').each(function(){
    inputTypes_min.push($(this).prop('id'));
  });
  var min_id_of_last_partition=inputTypes_min[inputTypes_min.length - 2]
  $("#"+min_id_of_last_partition).attr("disabled", true); 
  $("#"+min_id_of_last_partition).val(parseInt(max_value_of_last_partition) + 1)
 }

}

我已经使用了Jquery的结束选择器在一个循环中根据你的表单获取max和amount字段的所有值,并获取你的min_miles字段的id,然后根据max_miles设置min_miles的值

它起作用对我来说希望它适合你。

答案 1 :(得分:0)

字段的默认值只能在表单构建器中作为第二个参数传递:

...
f.input :min_miles, "My default value"

当然,我不知道你的模型结构,但你明白了。

关于您的第二个问题,并假设新表单通过javascript显示,没有页面重新加载,您可以使用javascript获取字段值并将其用作新字段的默认值。 "添加新范围" click将是值捕获的触发器。

像(使用jQuery):

var temp_value = '';
$('#add_more_range').click(function(){
  temp_value = $('#my_form1 #min_miles').value();
  $('#my_form2 #max_miles').value(temp_value); 
});

我再次猜测选择器的名称,但整体方法应该有效。

如果您还要在页面上添加“#34;添加新范围"按钮/链接,然后您应该委派该函数,以便继承所有新添加的按钮:

$('body').on('click', '#add_more_range', function(){...});