2017-07-26 25 views
0

假设我有以下表单。有没有更好的方法来发送URL中的输入值,如示例“indication_effects/+ MY_VALUE”,并去掉参数指示= MY_VALUE?提交表单并在URL中添加输入,而不是参数

也许有可能与Django做到这一点,或者我应该只使用django表单?

谢谢

  <form id="indication-form" class="form-horizontal" method="get"> 
      <div class="form-inline"> 
       <div class="col-md-8"> 
        <input type="text" class="form-control" id="indication-input" name="indication" /> 

        <button class="btn btn-primary" type="submit" id="indication-submit">Submit</button> 
       </div> 
      </div> 
     </form> 

var indicationForm = $('#indication-form'); 

$("#indication-submit").on("click", function() { 
    indicationForm.attr("action", "indication_effects/" + $("#indication-input").val()); 
    indicationForm.submit(); 
}); 
+0

这与Django无关。您可以使用纯Javascript或JQuery来完成它。 – Selcuk

+0

当然,但看起来很丑。 – ddomingo

回答

0

看,GET要求总是将通过URL发送表单数据和POST要求总是将通过请求头发送表单数据。

它看起来不漂亮,但它是它的工作方式。

但是,你可以用Vue.js做一些很好的事情来得到你想要的东西。

无视你的形式action,从<button>改变你的提交按钮<a>并建立其href动态,你可以“提交”利用你的HTML表单数据表单。

事情是这样的:

<div id="app"> 
    <form id="indication-form" class="form-horizontal" method="post" action="."> 
     <div class="form-inline"> 
      <div class="col-md-8"> 
       <input type="text" class="form-control" id="indication-input" name="indication" v-model="indication" /> 

       <a :href="getUrl" class="btn btn-primary" id="indication-submit">Submit</a> 
      </div> 
     </div> 
    </form> 
</div> 

<script src="//unpkg.com/vue"></script> 
<script type="text/javascript"> 
    new Vue({ 
     el: '#app', 
     data: { 
      indication: '' // Link all your form fields with v-model here 
     }, 
     computed: { 
      getUrl: function() { 
       return '/' + this.indication + '/'; // Build your url 
      } 
     } 
    }); 
</script> 

Vue.js是一个强大而简单的JavaScript框架,我非常喜欢它。

相关问题