在Django模板的另一个字段更改后如何禁用复选框?

我是初级后端python开发人员(Django),但我必须执行“简单”的前端任务。我认为这很容易,但对我而言并不容易,因为我的前端以F :(


我在此应用程序中使用引导程序。


我有一个带有某些字段的表单字段,其中两个是名为'checkbox_1'的复选框 和名为'price_1'的价格的数字字段。


True复选框表示“产品免费”,因此...


如果checkbox_1为True,则应该禁用“ price_1”字段,因此我无法在其上书写。如果'price_1'为0且'checkbox_1'为False,则会显示一条消息“如果产品不是免费的,则价格不能为0”。


我已经尝试过使用类似if语句的django模板:


<form action="index.html" method="POST">

    <div class="form-group">

        <label class="control-label">{{ form.price.label }} </label>

        {{ form.price }} EUR

    </div>

    <div class="checkbox m-b-14">

        <label>{{ form.free_product }} <i>/</i> {{ form.free_product.label }}</label>


        <!--AND HERE IS MY TRY-->

        {% if form.price.value == 0 %}

            TEST Price 0

        {% else %}

            TEST price is bigger than 0

        {% endif %}

    </div>

</form>

仅在首次进入页面后才起作用。我想我必须使用JS吗?也许有可能在bootstrap或django模板中做到这一点?


即使我的示例可以正常工作,我仍然不知道如何在运行时通过“必需”或“禁用”……在您单击复选框的那一刻。


如果我不知道如何正确搜索它,这对我来说是不可思议的; /


您能帮我在这里做什么才能使它正常工作吗?


慕盖茨4494581
浏览 142回答 1
1回答

慕哥9229398

您无法使用django做到这一点,因为django具有同步调用...所以要再次收到django的任何响应,您都需要发出新请求或刷新页面...因为您需要动态的东西,所以应该使用Javascript来做到这一点。document.getElementById('yourBox').onchange = function() {&nbsp; &nbsp; document.getElementById('yourText').disabled = !this.checked;};<input type="text" id="yourText" disabled /><input type="checkbox" id="yourBox" />
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python