Как мне скопировать HTML и пользовательский ввод, а затем отправить его на сервер в HTTP-запросе?

Kenny, вы почти получили его, но есть две проблемы, которые указал @scharette:

  1. for цикл и удаление элемента списка не должны совпадать. Исправление состоит в том, чтобы использовать цикл while и явно увеличивать индекс. Цикл while менее эффективен, потому что он вызывает len() несколько раз вместо этого один раз, но это то, что требуется для получения правильного результата.
  2. IndexError. Это происходит только в последней строке. Мой способ справиться с этой проблемой - проигнорировать ошибку.

При этом я изменил ваш код на:

with open('toy.txt' ,'r') as f:
    pattern = f.read().splitlines()
    print pattern

    try:
        i = 0
        while i < len(pattern):
            if pattern[i] in pattern[i+1]:
                pattern.remove(pattern[i])
            print pattern
            i += 1
    except IndexError:
        pass
2
задан rancper 18 January 2019 в 18:27
поделиться

2 ответа

Как я понимаю, это то, что вы пытаетесь сделать,

var xmlHttp = null;
var formData = new FormData();
var form = document.getElementById('form_div');
var cln = form.cloneNode(true);
var saveForm = '<html><body>' + cln.innerHTML + '</body></html>';
formData.append("saveform", saveForm);
var xmlHttp = new XMLHttpRequest()
console.log(saveForm);    

https://jsfiddle.net/VectorVortec/7ycbw0tg/7/

[ 114] Вопрос в том, заполнена ли форма во время клона. Если это так, то этот код работает. Если нет, то следует использовать выбранный ответ.

0
ответ дан VectorVortec 18 January 2019 в 18:27
поделиться

Вы не можете объединить узел со строкой, вам нужно использовать свойство innerHTML, чтобы получить HTML.

Но HTML-код ввода не содержит изменений в его значении. Если вы хотите, чтобы это изменение было отражено, вам необходимо скопировать свойство value в атрибут value.

var cln = form.cloneNode(true);
cln.querySelector("#example").setAttribute("value", document.querySelector("#example").value);
var saveForm = '<html><body>' + cln.innerHTML + '</body></html>';
0
ответ дан Barmar 18 January 2019 в 18:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: