我不是Java专家,但是有时候我需要转向它。
我有一个脚本,该脚本允许用户选择两个日期(从和到)来创建报告。

<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替换为用户选择的日期。不幸的是,它忽略了第二个变量id_to_date。谁能给我一个提示,为什么会这样?
我不能让var url保留任何初始值,因为打开视图时,如果没有给出任何提示,应用程序就会崩溃。
整个项目都是在Django中创建的,报告的视图为:

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(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'),

最佳答案

syntax of setAttribute

element.setAttribute(name, value);


您使用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);

关于javascript - 填写表格后替换两个变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37209158/

10-11 12:58