Добавление значения формы с помощью js - PullRequest
1 голос
/ 04 июля 2010

Я пытаюсь написать форму заказа, которая автоматически показывает стоимость выбранных товаров.Серверная часть уже завершена, и на входном конце каждое поле, все радио / флажки, выглядят так:

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

'18 '- цена, а все остальное не имеет отношения к расчету интерфейсной цены.Я не могу изменить соглашение об именах, поэтому мне нужно получить значение в скобках на всех <input> s на странице (или ниже родительского идентификатора), добавить их вместе (при обновлении) и добавить значение к другому идентификатору,Jquery уже используется на сайте, если это облегчает стринги.

Мне просто нужно указать правильное направление, так как мой опыт работы с JS ограничен примерами и незначительными настройками:)

Ответы [ 3 ]

2 голосов
/ 04 июля 2010

Попробуйте использовать простое регулярное выражение с replace в Javascript, чтобы заменить все нечисловые символы пустой строкой:

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

Демонстрация: http://jsfiddle.net/XvTaY/1/

1 голос
/ 04 июля 2010

Вы можете попробовать что-то вроде этого:

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);
  });
});
0 голосов
/ 04 июля 2010

вы можете использовать:

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

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

// теперь v имеет номер

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...