#javascript #jquery #html
#javascript #jquery ( jquery ) #HTML
Вопрос:
У меня есть таблица html с 3 строками, каждая строка содержит две <td>
строки с полем ввода текста name="freq"
, а вторая <td>
пуста.
Я хочу прочитать все значения полей ввода и выполнить для них функцию вычисления, а затем установить результаты для каждого поля в пустом <td>
Я хочу сделать это в jQuery,
Спасибо за любую помощь.
Ответ №1:
Что-то вроде этого..
$('input[name="freq"]').each(function(){
var value = this.value; // extract the value from the input element
var newValue = process(value); // process performs the calculations..
$(this).closest('td').next().html(newValue); // find the following <td> element and set its contents to the result of the calculations..
});
Демонстрация на http://jsfiddle.net/gaby/bWFxQ /
Комментарии:
1. Я столкнулся с небольшой проблемой при вычислении, я установил значение полей для загрузки значения по умолчанию (15, 10, 20). В первый раз все рассчитано правильно, но когда я ввожу разные значения в поля, старые значения все еще находятся в памяти (сеанс), а новые значения умножаются на старые значения, я не понимаю, как это исправить.
2. @YaBasha, ты можешь показать свой код? возможно, вы неправильно инициализируете переменную..
3. @Ya Basha, не могли бы вы добавить соответствующий html, поскольку я не могу выполнять какие-либо тесты только с помощью javascript..
4. @gaby-aka-g-petrioli спасибо за вашу помощь, я понял, в чем проблема, а именно: я выполнял вычисления с максимальным и минимальным значением, и я инициализировал его с помощью document.ready, что означает, что он вычисляет max и min один раз в начале и всякий раз, когда яизменил значения частоты на те же значения max и min в памяти, решение: я переместил вычисление max и min внутри скрипта кнопки, поэтому при каждом нажатии кнопки он вычисляет max и min. Еще раз спасибо, чувак.
5. @Ya Basha, здорово.. рад, что вы разобрались с этим 🙂
Ответ №2:
Попробуйте с:
$('#yourTable td[name="freq"] input').change(function(){
var val = parseInt($(this).val());
val = val * 3 4; //your calculation
$(this).parent().next().text(val);
});
Комментарии:
1. возможно, вам придется использовать val = eval(val) 3 4;
2. Почему ? НЕ используйте
eval
. Действительно.
Ответ №3:
попробуйте это
$('#table :input').change(function(){
var val = $(this).val();
val = eval(val) * 5; //your calculation
$(this).parents('td:first').next().html(val);
});