【问题标题】:How to disable a input field according to another select field value in bootstrap/crispy?如何根据 bootstrap/crispy 中的另一个选择字段值禁用输入字段?
【发布时间】:2021-11-22 06:05:50
【问题描述】:

我正在尝试根据在操作字段上选择的值停用 existing_name 字段 我正在使用 crispy 和 models.py 中 action 字段的渲染选项

action = models.CharField(max_length=30,
                              choices=[('add', 'Add'), ('delete', 'Delete'), ('modify', 'Modify'),
                                       ('rename', 'Rename')])

我在 Stackoverfllow 上检查了所有相同的问题,并且都建议通过更改发生操作字段的脚本来停用它

{% extends "KPI_App/base.html" %}
{% load crispy_forms_tags %}

{% block content %}
<form action="" method="post" autocomplete="off" >
    {% csrf_token %}
        <div class="row">
            <div class="col-md-4 id='1'">{{form.action|as_crispy_field}}</div>
        </div>
        <div class="row">
            <div class="row id='existing_name' " >{{form.existing_name|as_crispy_field}}</div>


    <div class="row">
        <div class="col-md-8">
            <button type="submit" class="btn btn-success btn-block btn-lg"><i class="fas fa-database"></i> Submit</button>
        </div>
        <div class="col-md-4">
            <a href="{% url 'KPI_list' %}" class="btn btn-secondary btn-block btn-lg">
                <i class="fas fa-stream"></i> Back to List
            </a>
        </div>
    </div>
</form>
{% endblock content %}
<script>
    $(document).ready(function(){
  $("select[name='action']").on('change',function(){
    if($(this).val()=='1'){
      $("input[name='existing_name']").prop("disabled",false);
    }else{
      $("input[name='existing_name']").prop("disabled",true);
    }
  });
});
</script>

我无法为这些类分配 id 并使用它的脚本

【问题讨论】:

    标签: javascript html django django-crispy-forms


    【解决方案1】:

    假设您的表单输入 ID 是 django 默认值:id_actionid_existing_name

    function toggleAction() {
        if ($('#id_action :selected').text() == "Modify") {
            $('#id_existing_name').prop('disabled',false)
        }
        else {
            $('#id_existing_name').prop('disabled',true)
        }
    }
    
    $(document).on('click change', '#id_action', function() {
        toggleAction()
    })
    
    $(document).ready(function() {
        toggleAction();
    });
    

    【讨论】:

    • 我应该如何为输入字段添加id,我的意思是如何为action字段添加id
    • @Mohsen Django 自己添加了这个!如果你检查你会看到的元素。右键单击输入>检查
    • 我将脚本添加到代码中,existing_name 字段被禁用,所有可能的选择我有 4 个选择 adddeletemodifyrename,带有modify 选项需要启用existing_name 字段
    • @Mohsen 我已经更新了我的答案以反映选择下拉列表
    猜你喜欢
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    • 2013-08-20
    相关资源
    最近更新 更多