วิธีที่จะพิมพ์ข้อความจากคนเดียวกับข้อ dynamically ถูกสร้างขึ้นหลายครั้งด้วย Jquery และขวด

0

คำถาม

ฉันกำลังพัฒนาโปรแกรมกับ Jquery และขวดนั่นสร้า inputs ของประเภทข้อความ dynamically โดยการคลิกบน respective ปุ่มวิทยุแล้วโปรแกรมที่ต้องจับข้อความของแต่ละนำเข้าข้อมูลและพิมพ์มันอยู่ที่ห้องด้านล่างของจอภาพด้วย ตอนที่ฉันสร้างเดียวที่นำเข้าข้อมูลจากใครปุ่มวิทยุกับ"ชื่อ"ตั้งเป็นตามที่โปรแกรมทำงานได้เยี่ยมมา:

$('#Entradas').append('<input type="text" id="name2" name="message1" placeholder="Ingresa tu mensaje">')

แต่เป็นเพราะฉันสามารถสร้างหลาย inputs มาจากที่เดียวกันปุ่มวิทยุ,ฉันต้องการบางอย่างที่พารามิเตอร์"ชื่อ"เป็นตัวแปรหรือโดยอัตโนมัติ increment ทุกครั้งที่นำเข้าข้อมูลคือที่ถูกสร้างกับปุ่มวิทยุดังนั้นเมื่อถูกประมวลผลโดยระบบรหัสอยู่ในขวดมันสามารถจะพิมพ์ข้อความของทั้งหมดข้อมูลที่เคยถูกสร้างขึ้น กับการต่อรหัสฉันสร้างสองคนประเภทของ inputs งแรกกับตัวแปรชื่อและคนที่สองกับซ่อมชื่อของนำเข้าข้อมูลกับซ่อนชื่อรอยนิ้วมือมันเป็นแต่สองคน inputs กับชื่อตัวแปรอยนิ้วมือพวกเขาว่า"ไม่มี".

HTML-จาวาสคริปต์(InsertarFlask3.html)

<script type=text/javascript>
            
        var i=0;
    
    $(document).ready(function(){
                
        $("#der-iz").click(function(){
            
            var i = i+1;

             $('#Entradas').append('<textarea type="text" id="name" name= "(i)" placeholder="Type 
             your message">');   //Input with name variable. It does not work.

             $('#Entradas').append("<br>");  

        })

        $("#ab-ar").click(function(){
             $('#Entradas').append('<input type="text" id="name2" name="message2" 
             placeholder="Type your message">');  //Input with name fixed. It works.

             $('#Entradas').append("<br>");
            
            
        })

        $(function() {
              $('a#process_input').bind('click', function() {
                $.getJSON('/background_process', {
                  mess1: $('textarea[name="1"]').val(),
                  mess2: $('textarea[name="2"]').val(),
                  message2: $('input[name="message2"]').val()
                }, function(data) {
                  $("#result").text(data.result);
                  $("#result").append("<br>");
                  $("#result").append(data.result1);
                  $("#result").append("<br>");
                  $("#result").append(data.result2);
                });
                return false;
              });
            });
        
        
    });
    </script>

    <body>

       <form>
    
    <div id="Entradas">
        
    </div>
        
        <br>
        
        <a href=# id=process_input><button class='btn btn-default'>Send</button></a>
        
    </form>
                    
    <p>
                <label>
                
                <input type="radio" name="filaint" id="der-iz" value="der-iz" >Right-Left</label>
                
                
                <label>
                    
                <input type="radio" name="filaint" id="ab-ar" value="ab-ar" >Down-Up</label>
    
    </p>
    
    <br>
    
    <div id=result>
    
    </div>

</body>

ขวด

@app.route("/")
def index():

    return render_template("InsertarFlask3.html")

@app.route("/background_process")
def background_process():
    

    lang = str(request.args.get('mess1'))
    lang1 = str(request.args.get('mess2'))
    lang2 = str(request.args.get('message2'))
    
    return jsonify({'result':lang, 'result1':lang1, 'result2':lang2})

ข้อความของ inputs กสร้างโดยการวิทยุปุ่ม"เด-อิซ"คือพิมพ์ที่ไม่มีและคนเดียวข้อความที่ถูกสร้างโดยการวิทยุปุ่ม"เกี่-ar"คือพิมพ์ถูกต้องแล้ว

ฉันขอขอบคุณที่คุณช่วยผมต้องแก้ไขให้ถูกต้อง implementation.

flask html javascript jquery
2021-11-24 02:57:35
1

คำตอบที่ดีที่สุด

0

ฉันยังไม่เคย jQuery แต่ฉันจะแก้ไขเรื่องนี้อยู่ในธรรมดา JS ก่อสร้างธาตุนั้นการเปลี่ยนชื่อของคุณ dynamically ที่ถูกสร้างแล้ว appending มันที่พ่อแม่ตาม:

$("#der-iz").click(function(){

  let ta = document.createElement("textarea");
  ta.name = "maybesomethingdescriptive"+i.toString();
  //rest of attributes
  ta.classList.add("control-class") // with this you can query later over an indeterminated number of elements
  document.getElementById("Entradas").appendChild(ta);
  i++;
}

ผมเชื่อว่าคุณสามารถทำมันอยู่ในตรอยู่ใน JQuery แต่ฉันไม่สามารถหาทางออกนั้น

เพิ่มห้องเรียนคุณสามารถ iterate ทั้งหมดส่วนประกอบโดยที่ไม่รู้ว่ากี่คนของพวกเขาเป็นหรือชื่อของพวกเขากับ document.querySelectorAll(".control-class")

2021-11-24 04:21:01

ขอบคุณมากครับ!. มันได้ผลดีมาก
Christefs

เก่งมาช่วยคุณนะ
Christefs

@Christefs ยอดไปเลย! ช่วยฉันออกไปในการยอมรับคำตอบฉัน grinding ประเด็นที่จะออกความเห็น
mnzbono

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่