2015-10-16 71 views
1

我使用下面的JavaScript引導滑塊(實施例6):如何訪問值引導滑塊(使用燒瓶)

https://github.com/seiyria/bootstrap-slider 

我似乎無法提取從所選擇的值發佈數據。

這裏是包含在HTML頁面中的滑塊形式:

<form action="{{ url_for('filter') }}" method=post> 
     <div class='slider-example'> 
       <h4>Date-Time Range</h4> 
      <div class="well"> 
       <p id="basicExample"> 
        <!-- Date/time range form; requires js library at bottom --> 
        <input type="test" placeholder="Start Date" class="date start" name="startdate" value="{{ request.form.startdate }}"> 
        <input type="test" placeholder="Start Time" class="time start" name="starttime" value="{{ request.form.starttime }}"> to 
        <input type="test" placeholder="End Date" class="date end" name="enddate" value="{{ request.form.enddate }}"> 
        <input type="test" placeholder="End Time" class="time end" name="endtime" value="{{ request.form.endtime }}"> 
       </p> 
      </div> 
       <hr> 

       <h4>HDOP Range</h4> 

      <div class="well"> 

       <input id="ex16b" type="text" data-slider-min="{{hdopmin}}" data-slider-max="{{hdopmax}}" data-slider-step=".01" 
       data-slider-ticks="[{{hdopmin}}, {{hdopmax}}]" data-slider-ticks-snap-bounds="1" data-slider-ticks-labels="['{{hdopmin}}', '{{hdopmax}}']" /> 

      </div> 

       {{ form.submit }} 


     </form> 

這個滑塊的JavaScript:

<script type='text/javascript' src="static/js/jquery.min.js"></script> 
<script type='text/javascript' src="static/js/bootstrap-slider.js"></script> 
<script type='text/javascript'> 
    $(document).ready(function() { 

     /* Example 6 */ 
     $("#ex6").slider(); 
     $("#ex6").on('slide', function(slideEvt) { 
      $("#ex6SliderVal").text(slideEvt.value); 
     }); 
     /* Example 16 */ 

     $("#ex16b").slider({ 
      min : 0, 
      max : 10, 
      value: [ 0, 10 ], 
      focus: true 
     }); 


    }); 
</script> 

我試圖訪問滑塊的兩個位置的值由用戶設置。我使用{{hdopmin}}和{{hdopmax}}動態設置範圍的最小值和最大值。

我app.py視圖功能:

@app.route('/filter', methods=['GET', 'POST']) 
def filter(): 
    conn = sqlite3.connect(database) 
    c = conn.cursor() 

    form = FilterForm() 

    mx = c.execute('select max(hdop) from points where hdop is not "" limit 1') 
    hdopmax = mx.fetchall()[0][0] 

    mn = c.execute('select min(hdop) from points where hdop is not "" limit 1') 
    hdopmin = mn.fetchall()[0][0] 


    if request.method == 'POST': 
     print request.form 
     return 'Form posted.' 

    elif request.method == 'GET': 
     return render_template('filter.html', form=form, hdopmax=hdopmax, hdopmin=hdopmin) 

當我填寫這張表格並提交,沒有任何滑塊值數據是包括在內。以下是'print request.form'的輸出。正如你所看到的,它包含了所有的日期時間信息,但沒有範圍選擇的值。

ImmutableMultiDict([('startdate', u'2015-10-14'), ('endtime', u'17:30:00'), ('enddate', u'2015-10-23'), ('starttime', u'17:30:00'), ('submit', u'Submit')]) 

我在引導滑塊窗體中缺少值嗎?在主頁上找不到實際使用滑塊值的任何內容。

由於

回答

2

爲了使輸入到獲得通過在燒瓶內的形式,它需要name屬性。只需嘗試在input中輸入名稱屬性,該值應出現在從request.form檢索到的字典中。例如: <input id="ex16b" type="text" name="slider_thingy"...>