#python #jquery #flask
Вопрос:
У меня есть три входа, я пытаюсь передать значения обратно в функцию внутри моего приложения, из index.html приготовлено в колбе.
Вот входные данные:
lt;form method="POST" action="/"gt; lt;smallgt;What is your gross income? lt;BRgt;lt;/smallgt; lt;input type="number" id="Income"gt;lt;BRgt;lt;BRgt; lt;div class="slidecontainer"gt; lt;smallgt; What % of income for house payment?lt;/smallgt;lt;BRgt; lt;input type="range" min="10" max="60" value="28" class="slider" id="percent_income" step="1"gt;lt;BRgt; lt;smallgt;lt;labelgt; Percent: lt;span id="Percent"gt;lt;/spangt;%lt;/labelgt;lt;/smallgt; lt;/divgt; lt;div class="slidecontainer"gt; lt;smallgt; What is your interest rate?lt;/smallgt;lt;BRgt; lt;input type="range" min="2" max="6" value="3.5" class="slider" id="interest_rate" step=".25"gt;lt;BRgt; lt;smallgt;lt;labelgt; Rate: lt;span id="Rate"gt;lt;/spangt;%lt;/labelgt;lt;/smallgt; lt;/divgt; lt;/formgt;
Вот скрипт для присвоения и отображения их значений на странице (для ползунков Ставки и процента дохода), а также мое начало в попытке передать значения.
$(function() { var slider3 = $("#interest_rate"); $("#Rate").html(slider3.val()); slider3.change(function() { $("#Rate").html(slider3.val()); }) var slider4 = $("#percent_income"); $("#Percent").html(slider4.val()); slider4.change(function() { $("#Percent").html(slider4.val()); }) }); function fetchdata() { $.getJSON({ type: "GET", url: "{{ url_for('calcprice') }}", data: { 'Income': $('#Income option:selected').html(), 'Percent': $('#percent_income option:selected').html(), 'Rate': $("#interest_rate option:selected").html(), }, success: function(data){ console.log(data) } }); } $(document).mouseup(function () {fetchdata()}); $(document).on('change', function () {fetchdata()});
Вот маршрут, который я начал, по которому я пытаюсь передать значения / значения запроса, но я немного застрял, новичок в jQuery, и я получаю 404 ошибки при изменении значений. Работает в циклах, пытаясь разобрать, что происходит, а что нет. Любой совет приветствуется!
@app.route('/calcprice', methods=['GET', 'POST']) def calcprice(): Income = request.args.get('Income') Percent = request.args.get('Percent') Rate = request.args.get('Rate') return price
Комментарии:
1. вы действительно хотите выяснить, связана ли проблема с внешним или внутренним (колба). Если вы запустите фрагмент jQuery
console.log($('#Income option:selected').html())
в началеfetchdata
, какое значение вы получите? Я ожидал бы, что вы захотите использовать$('#Income').val()
2. Спасибо. Это очень помогло и привело меня на тот путь, по которому я смог найти ответ.
3. Кажется, я не могу отметить ваш вопрос как ответ, но я бы сделал это, если бы мог.
Ответ №1:
Чтобы получить значение из поля ввода с помощью jQuery, попробуйте выполнить следующие действия: $('#{Id_of_input_field}').val()
В вашем примере это будет выглядеть примерно так:
$.getJSON({ type: "GET", url: "{{ url_for('calcprice') }}", data: { 'Income': $('#Income').val(), 'Percent': $('#percent_income').val(), 'Rate': $("#interest_rate").val(), }, success: function(data){ console.log(data) } });