Sto sviluppando un'applicazione con Jquery e Pallone che genera input di tipo testo dinamico cliccando sul rispettivo pulsante di opzione, quindi l'applicazione deve acquisire il testo di ogni ingresso e la stampa alla parte inferiore dello schermo. Quando ho generano solo un input da parte di un pulsante con un "nome" imposta come segue, l'applicazione funziona perfettamente:
$('#Entradas').append('<input type="text" id="name2" name="message1" placeholder="Ingresa tu mensaje">')
Ma perché sono in grado di generare diversi ingressi dalla stessa radio pulsante, ho bisogno in qualche modo il parametro "nome" essere variabile o di incremento automatico ogni volta che l'ingresso è generato con il pulsante radio in modo che quando trattati dal codice in Pallone è in grado di stampare i testi di tutti gli input che sono stati generati. Con il seguente codice mi genera due tipi di ingressi, il primo con il nome della variabile e il secondo con il nome fisso, l'ingresso con il nome fisso stampe perfettamente, ma due ingressi con il nome della variabile li stampa come "Nessuno".
HTML-Javascript (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>
Pallone
@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})
Il testo di input generato dal pulsante di opzione "der-iz" è stampato come Nessuno, e l'unico testo generato dal pulsante di opzione "ab-ar" è stampato correttamente.
Apprezzo che mi aiutano a correggere questa implementazione.