1

在此处输入图像描述

我想在 Min Miles 上显示以前的值,并且它不应该是可编辑的。我想要喜欢

  1. 最小里程的默认值为 0。
  2. 当我单击添加更多范围时,在新表单中 - 最小值应该是先前表单的最大值。

我正在使用语义形式。请帮我。我怎样才能做到这一点...

4

2 回答 2

1

关于你的第二个问题,假设新表单通过 javascript 出现,无需重新加载页面,你可以使用 javascript 获取字段值并将其用作新字段的默认值。“添加新范围”

类似函数 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 的 End Selector,以根据您的表单获取 max 和 amount 字段的所有值,并获取 min_miles 字段的 id,然后根据 max_miles 设置 min_miles 的值

它对我有用,希望它对你有用。

于 2013-05-23T07:02:44.580 回答
0

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

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

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

关于你的第二个问题,假设新表单通过 javascript 出现,无需重新加载页面,你可以使用 javascript 获取字段值并将其用作新字段的默认值。“添加新范围”单击将触发值捕获。

类似于(使用 jQuery):

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

同样,我只是在猜测选择器的名称,但总体方法应该可行。

如果您还动态地向页面添加“添加新范围”按钮/链接,那么您应该委托该功能以便也为新添加的按钮继承:

$('body').on('click', '#add_more_range', function(){...});
于 2013-05-21T06:19:47.703 回答