代码之家  ›  专栏  ›  技术社区  ›  SNaRe

如何重新格式化具有get方法的表单提交URL

  •  0
  • SNaRe  · 技术社区  · 6 年前

    我有一个带有DataRangePicker的表单。输入中的值是字符串

    <form action="calculate" method="GET">
    
      <input type="text" name="date_interval" value="08/01/2019 - 07/02/2019" id="range">
    
      <input type="submit">
    
    </form>
    
    <script type="text/javascript">
      var range = document.getElementById('range').toString();
      var arrayDates = range.split("-").map(function(item) {
        return item.trim();
      });
      arrayDates = arrayDates.map(item => item.replace('/', '-'));
    
    </script>

    当我提交上面的URL时,上面会包含一些奇怪的字符,如下所示

    https://www.webiste.co/calculate?date_interval=08%2F01%2F2019+-+07%2F02%2F2019
    

    我希望它被重定向到类似于

    https://www.webiste.co/calculate/date_interval/08-01-2019/07-02-2019
    

    在这个问题中,我从输入值中获取值,我不提交到Standart URL 我怎么能在飞行中做到这一点?

    https://jsfiddle.net/tok63p5f/

    1 回复  |  直到 6 年前
        1
  •  0
  •   Jose Rojas    6 年前

    let arrayDates = valueFrom.trim().split("-");
    

    08/01/2019 08-01-2019 / -

    arrayDates = arrayDates.map( item => item.replace(/\//g, '-'));
    

    window.href

     document.getElementsByTagName('form')[0].onsubmit = (e) => 
     {
            e.preventDefault();
            let range;
            range = document.getElementById('range').value;
            let arrayDates = range.trim().split("-");
            arrayDates = arrayDates.map(item => item.trim().replace(/\//g, '-'));
            window.location.href = "https://www.webiste.co/calculate/date_interval/"+arrayDates[0]+"/"+arrayDates[0]
     }