我如何操纵日期拾取器值传递参数到url

How I can manipulate datepicker value to pass params to a url

本文关键字:值传 参数 url 日期 何操纵 操纵      更新时间:2023-09-26

我正在尝试传递日期拾取器值到url。当我选择日期时,它的格式是"yyyy-mm-dd"。我需要的格式是:"dd%2Fmm%2Fyyy"

我所做的:HTML:

<form class="property-search-form border-box" action="reserva-online">
<div class="row">
    <div class="col-xs-12 col-sm-3 form-group">
        <h3>Fecha de entrada</h3>
        <span id="datepicker">
            <input type="date" name="dfrom" value="" id="dfrom">
        </span>
    </div>
    <div class="col-xs-12 col-sm-3 form-group">
        <h3>Número de noches</h3>
            <span>
                <input type="number" name="nights" id="nights" value="" min="1" max="30">
            </span>
    </div>
    <div class="col-xs-12 col-sm-3 form-group">
        <h3>Código Descuento</h3>
            <span>
                <input type="text" name="decode" value="" size="40" class="wpcf7-form-control wpcf7-text dcode" id="dcode" aria-invalid="false"></span>
    </div>
    <div class="col-xs-12 col-sm-3 form-group reservarButton">
        <input type="submit" value="Buscar Ahora" onsubmit="my_redirect()" class="btn btn-primary btn-block form-control">
    </div>
</div>

JS:

<script>
    function my_redirect() {
    var fecha = document.getElementById('dfrom').value;
    var number=fecha.replace(/-/g,'');
    var ano = number.substr(0, 4);
    var mes= number.substring(4, 6);
    var dia= number.substr(6, 7);
    var noches = document.getElementById('nights').value;
    var descuento = document.getElementById('dcode').value;
    var url = "/?dfrom=" + dia + "%2F" + mes + "%2F" + ano + "&nights=" + noches + "&decode=" + descuento;
        window.location = url;
    }
</script>

为什么我提交的url是

"/reserva-online/?dfrom=2016-11-16&nights=5&decode=32re32r"

而不是
"/reserva-online/?dfrom=16%2F11%2F2016&nights=5&decode=32re32r" 

感谢您的时间和回答!

Ok!我解决了!

event.preventDefault();

这就是解决方案:

<script>
document.getElementById("sendButton").addEventListener("click", function(event){
    event.preventDefault();
    function my_redirect() {
            var date = document.getElementById('calendar').value;
            var year = date.substr(6, 9);
            var month= date.substring(0, 2);
            var day= date.substring(3, 5);
            var nightsNumber = document.getElementById('nights').value;
            var discount = document.getElementById('dcode').value;
          var url = "reserva-online/?dfrom=" + day + "%2F" + month + "%2F" + year + "&nights=" + nightsNumber + "&decode=" + discount;
          window.location = url;
        }
        my_redirect();
});
</script>