我想在其他标签中嵌套标签,以便启用或禁用聊天机器人的下载按钮.但是,不允许嵌套标记.有没有其他方法来实现这一点?下面是我的完整的HTML文件.

{% extends "layout.html" %}
{% block content %}

<!-- Begin page content -->
  <div class="overflow-auto">
    <br>
    <br>

    <div id="list-group" class="list-group w-auto">
      <a href="#" class="list-group-item list-group-item-action d-flex gap-3 py-3">                                                           
                    <img src="https://digital-practice.ams3.cdn.digitaloceanspaces.com/static%2Fapp%2Fimg%2Fopenai-logo.png" alt="twbs" width="32" height="32" class="rounded-circle flex-shrink-0"> 
                    <div class="d-flex gap-2 w-100 justify-content-between">
                      <div>
                        <p class="mb-0 opacity-75">How may I help you?</p>
                      </div>
                    </div>
      </a>
    </div>
    <div class="input-group mb-3">
      <textarea id="chat-input" class="form-control custom-control" oninput='this.style.height = "";this.style.height = this.scrollHeight + "px"'></textarea>
      <span id="gpt-button" class="input-group-asson btn btn-primary">Ask ChatGPT</span>

    </div>
  </div>
  

  <script src="https://code.jquery.com/jquery-3.6.3.min.js" integrity="sha256-pvPw+upLPUjgMXY0G+8O0xUf+/Im1MZjXxxgOcBQBXU=" crossorigin="anonymous"></script>
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js" integrity="sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN" crossorigin="anonymous"></script>

  <script>

    $("#gpt-button").click(function(){
    chat();
    });

    $("#chat-input").keypress(function(event){  
    if(event.which==13){
        chat();
    }
    });


    
    function chat(){
    var question = $("#chat-input").val();
    console.log(true);  
    $("#chat-input").val('');

    let html_data = '';
    html_data += `<a href="#" class="list-group-item list-group-item-action d-flex gap-3 py-3">
        <img src="{{ url_for('static', filename='images/ai4eic-logo.png') }}" alt="twbs" width="32" height="32" class="rounded-circle flex-shrink-0">
        <div class="d-flex gap-2 w-100 justify-content-between">
          <div>
            <p class="mb-0 opacity-75">${question}</p>
          </div>
        </div>
      </a>`;
    $("#chat-input").val('');
    $("#list-group").append(html_data);

    $.ajax({
        type: "POST",
        url: "/chat",
        data: {'prompt': question},
        success: function (data) {

        let gpt_data = '';
        gpt_data += `
               <script>
               let butt=document.getElementById("download-button");         
               if((data.answer).includes("python")){
                   butt.classList.add("fadeIn");
                   butt.disabled = false;
               }
               </script>

               <style> 
                       p{word-break: break-all;
                         white-space:normal;} 

                       #download-button {
                         transition: opacity 1s;
                         opacity: 0;
                        }

                       #download-button.fadeIn {
                         opacity: 1;
                         }
                </style>       


           <a href="#" class="list-group-item list-group-item-action d-flex gap-3 py-3">
                    <img src="https://digital-practice.ams3.cdn.digitaloceanspaces.com/static%2Fapp%2Fimg%2Fopenai-logo.png" alt="twbs" width="32" height="32" class="rounded-circle flex-shrink-0">  
                    <div class="d-flex gap-2 w-100 justify-content-between">
                      <div class="a">                                                           
                        <p class="mb-0 opacity-75">${data.answer}</p>    
                        <button type="button" disabled="true" id="download-button" class="btn btn-primary">Download Code</button>                
                      </div>                                                          
                    </div>                                                            
                  </a>`;
        $("#list-group").append(gpt_data);
        }
    });
    };

    </script>
 

  {% endblock content %}

有问题的代码块包括

<script>
       let butt=document.getElementById("download-button");         
       if((data.answer).includes("python")){
             butt.classList.add("fadeIn");
             butt.disabled = false;
        }
</script>

我try 将该脚本放入一个单独的.js文件中,并从该HTML文件调用该.js文件.然而,这似乎并不起作用,我认为这是因为Java代码调用了私有类属性,如#chat-input等.

推荐答案

<button type="button" disabled="true" id="download-button" class="btn btn-primary">Download Code</button>

try 将禁用的值作为计算值,而不是硬编码的真值

<button type="button" disabled="${!(data.answer).includes("python")}" id="download-button" class="btn btn-primary ${(data.answer).includes("python") ? 'fadeIn' : ''}">Download Code</button>                

Javascript相关问答推荐

在JavaScript中打开和关闭弹出窗口

添加/删除时React图像上传重新渲染上传的图像

为什么在获取回调内设置状态(不会)会导致无限循环?

JS、C++和C#给出不同的Base 64 Guid编码结果

如何通过在提交时工作的函数显示dom元素?

在观察框架中搜索CSV数据

在拖放时阻止文件打开

将核心模块导入另一个组件模块时存在多个主题

在Java中寻找三次Bezier曲线上的点及其Angular

为什么JPG图像不能在VITE中导入以进行react ?

如何在 Select 文本时停止Click事件?

邮箱密码重置链接不适用于已部署的React应用程序

从另一个数组中的对应行/键值对更新数组中的键值对对象

Jexl to LowerCase()和Replace()

每隔3个项目交替显示,然后每1个项目交替显示

如何让SVG图标在被点击和访问后改变 colored颜色 ,并在被访问后取消点击时恢复到原来的 colored颜色 ?

在使用JavaScript以HTML格式显示Google Drive中的图像时遇到问题

在此div中添加一个类,并在一段时间后在Java脚本中将其删除

不允许在对象文本中注释掉的属性

如何将值从后端传递到前端