2016-05-13 2 views
0

私はJavascriptの専門家ではありませんが、時にはそれを回す必要があります。 私は、ユーザーがレポートを作成するために2つの日付を(からまで)選択できるようにするスクリプトを持っています。フォームに記入した後に2つの変数を置換する

<div onmouseover="myFunction()"> 
<input id="id_from_date" name="from_date" type="text"> 
<input id="id_to_date" name="to_date" type="text"> 
</div> 

<script> 
function myFunction() { 
    $('#id_from_date').datetimepicker({ 
     format: 'd-m-Y', 
     lang: 'pl', 
     pickTime: false, 
     timepicker: false, 
     weeks: true, 
     dayOfWeekStart: 1, 
     closeOnDateSelect: true 
    }); 
    $('#id_to_date').datetimepicker({ 
     format: 'd-m-Y', 
     lang: 'pl', 
     pickTime: false, 
     timepicker: false, 
     weeks: true, 
     dayOfWeekStart: 1, 
     closeOnDateSelect: true 
    }); 
    var from = document.getElementById("id_from_date").value; 
    var to = document.getElementById("id_to_date").value; 
    var url = '{% url 'logistyka_tabela_brakow.views.report_from_to' '11-11-1111' '12-12-1212' %}'; 
    document.getElementById("link").setAttribute("href", url.replace(/11-11-1111/, from), url.replace(/12-12-1212/, to)) 
} 
</script> 

<a id="link" type="button" class="btn btn-success">go!</a> 

私はテザーの最後です。コードは、最初の変数id_from_dateをユーザが選択した日付に置き換えます。残念ながら、2番目の変数id_to_dateは無視されます。誰も私になぜそれが起こるかのヒントを与えてもらえますか? ビューを開いている間に何も指定せずにアプリケーションがクラッシュするため、初期値をvar urlのままにすることはできません。 プロジェクト全体はジャンゴで作成されたレポートするための図である。

def report_from_to(request, from_date, to_date): 
    from datetime import datetime 
    strfrom = datetime.strptime(from_date, "%d-%m-%Y") 
    strto = datetime.strptime(to_date, "%d-%m-%Y") 
    report = Braki.objects.filter(Q(date__gte=strfrom), Q(date__lte=strto)) 
    return render(request, 'logistyka_tabela_brakow/report_from_to.html', {'report': report}) 

形式:

class ReportForm(forms.Form): 
    from_date = forms.DateField() 
    to_date = forms.DateField() 
    fields = '__all__' 

URLは明らかである:

url(r'report_from_to/(?P<from_date>[0-9]{2}-[0-9]{2}-[0-9]{4})/(?P<to_date>[0-9]{2}-[0-9]{2}-[0-9]{4})', 
       'logistyka_tabela_brakow.views.report_from_to', name='report_from_to'), 

答えて

1

syntax of setAttribute

です
element.setAttribute(name, value); 

3つの引数を指定して呼び出しているので、3つ目の引数は無視されます。

document.getElementById("link") 
    .setAttribute("href", 
       url.replace(/11-11-1111/, from), 
       url.replace(/12-12-1212/, to) 
); 

これは

var url = '{% url 'logistyka_tabela_brakow.views.report_from_to' '11-11-1111' '12-12-1212' %}'; 
url = url.replace(/11-11-1111/, from); 
url = url.replace(/12-12-1212/, to); 
document.getElementById("link").setAttribute("href", url); 
+0

それは作品行う必要があります!ありがとうC14L。 – ZmuA

関連する問題