У меня есть форма, и мне нужно выполнить действие, если определенный вход изменяется. В моей JQuery, у меня есть три поля ввода установлен на другой переменной, например:Получить val ввода любой переменной с jQuery
var workOrderInput = jQuery(".work-order-select input");
var eventSchedulerInput = jQuery(".event-scheduler .gchoice_2_13_0 #choice_2_13_0");
var eventSchedulerSelect = jQuery(".event-scheduler select");
Для того, чтобы выяснить, если изменения входных, я использую:
jQuery([workOrderInput, eventSchedulerInput, eventSchedulerSelect]).each(function() {
jQuery(this).change(function() {
});
});
Если один из входных изменения полей, я хотел бы установить переменную в значение скрытого поля ввода, например
jQuery([workOrderInput, eventSchedulerInput, eventSchedulerSelect]).each(function() {
jQuery(this).change(function() {
var totalCost = jQuery(".signup-cost #field_2_22 #input_2_22").val();
console.log(totalCost);
});
});
Прямо сейчас, переменная totalCost устанавливается, но только при втором нажатии. Например, если я нажимаю на «.work-order-select input», ничего не происходит. Только когда я нажимаю на другой вход, переменная устанавливается и отображается в консоли.
Edit: Вот мой HTML
<form>
<div class="work-order-select">
<input type="radio" name="wo1" value="14.99">
<input type="radio" name="wo2" value="24.99">
<input type="radio" name="wo2" value="34.99">
</div>
<div class="event-scheduler">
<input type="radio" name="es1" value="44.99">
<select name="es1" >
<option value="Square Footage|0">Square Footage</option>
<option value="Under 50,000($29.00/mt)|29">Under 50,000($29.00/mt)</option
<option value="Under 75,000($49.00/mt)|49">Under 75,000($49.00/mt)</option>
<option value="Under 100,000($59.00/mt)|59">Under 100,000($59.00/mt)</option>
</select>
<div>
<div>
<span class="total"></span>
<input type="hidden" id="input_2_22" value="49.99">
</div>
</form>
Прямо сейчас, как только один из радио-кнопок выбора или выпадающие изменений, входное значение # input_2_22 обновляется.
Использование mouseup() также работает ... вид. Если я использую:
jQuery([workOrderInput, eventSchedulerInput, eventSchedulerSelect]).each(function() {
jQuery(this).mouseup(function() {
var totalCost = jQuery(".signup-cost #field_2_22 #input_2_22").val();
console.log(totalCost);
});
});
Первый переключатель, который не выбирает ничего. Это буквально пустая строка в веб-инспекторе Chrome. Во второй раз, когда я нажимаю на переключатель, отображается значение предыдущей кнопки, на которую я нажал.
Edit 2: Все вышеперечисленное фиксируется:
jQuery("#choice_2_13_0, #choice_2_10_0, #choice_2_10_1, #choice_2_10_2").addClass("discount-class");
jQuery(".discount-class").change(function() {
setTimeout(function() {
var totalCost = jQuery(".signup-cost #input_2_22").val();
var totalDiscount = (totalCost * .2).toFixed(2);
var afterDiscount = (totalCost - totalDiscount).toFixed(2);
console.log(totalDiscount);
jQuery("#input_2_23").val(totalDiscount);
}, 1000);
});
Теперь мне нужно только функцию изменения, чтобы стрелять, если один из «Wo» радио-кнопки выбираются и выберите значение не равно «Квадратные футы 0». Без везения я пытаюсь:
if (jQuery(".discount-class").is(':checked') && jQuery("#input_2_14").val != 'Square Footage|0') {
Это зависит от того, что 'JQuery (». Регистрация цене # field_2_22 # input_2_22") 'представляет элемент. – ElliotM
Это скрытое поле ввода. – user715564
В соответствии с кодом, который вы указали, это не выглядит так, как если бы «totalCost» изменился, если у вас нет логики в другом месте. – ElliotM