提交表单,并在网址中添加输入,而不是参数

时间:2017-07-26 09:31:06

标签: python django forms

假设我有以下表格。是否有更好的方法在URL中发送输入值,如示例“indication_effects/+MY_VALUE”中所示,并删除参数indication=MY_VALUE

也许可以用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();
});

1 个答案:

答案 0 :(得分:0)

看,GET请求始终将通过网址发送表单数据,POST请求始终将通过请求发送表单数据头。

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

然而,您可以使用Vue.js做一些不错的事情来获得您想要的效果。

忽略您的表单action,将提交按钮从<button>更改为<a>并动态构建其href,您可以&#34;提交&#34;您的表单使用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框架,我非常喜欢它。