使用js添加表单值

时间:2010-07-03 23:31:07

标签: javascript jquery forms

我正在尝试编写一个自动显示所选项目值的订单。后端已经完成,在前端每个字段,所有收音机/复选框,如下所示:

<input type="radio" name="shirt-size" value="shirt_size_m[18]" />

'18'是价格,其他一切与前端价格计算无关。我无法更改命名约定,因此我需要获取页面上所有<input>(或父ID下方)括号之间的值,将它们一起添加(更新时),并将值附加到另一个身份证Jquery已经在网站上使用,如果这样可以使丁字裤更容易。

我只需指出正确的方向,因为我的JS经验仅限于示例和次要的自定义:)

3 个答案:

答案 0 :(得分:2)

尝试使用带有Javascript replace的简单正则表达式,用空字符串替换所有非数字字符:

var str = "shirt_size_m[18]";
var theNumber = parseInt(str.replace(/[^0-9]/g, ''));
alert(theNumber);

演示:http://jsfiddle.net/XvTaY/1/

答案 1 :(得分:1)

您可以尝试这样的事情:

function calculate_sum(form_id) {
  var $form = $(form_id);
  var sum = 0;
  $checkbox_and_radios = $form.find('input[type=checkbox], input[type=radio]').each(function(){
    sum += parseInt($(this).val().match(/^[^\[]+\[(\d+)\]$/)[1]);
  });
  return sum;
}

$(function(){
  $("#id_of_the_form").find('input[type=checkbox], input[type=radio]').change(function(){
    var sum = calculate_sum("#form_id");
    // I don't know the type of your element containing
    // the sum, so I put multiple solutions here:
    // some input element
    $('#another_id').val(sum);
    // or another element
    $('#another_id').html(sum);
    // I'm assuming you don't really mean append
    // If you're sure you want to append: (but then the old value won't be deleted)
    $('#another_id').append(sum);
  });
});

答案 2 :(得分:0)

你可以使用:

var v;
v = $('#input-identifier').val();

v = v.split("[");
v = v[1];
v = v.split("]");
v = v[0];

// now v的数字为