#javascript #html #forms
#javascript #HTML #формы
Вопрос:
Я хотел бы проверить информацию, отправленную с помощью document.write
, и передать значения формы в скрытые поля формы (если это необходимо) для окончательной отправки. Используя онлайн-скрипт, у меня есть значение поля, содержащееся как таковое
if (splitArray[i] == 'textname')
document.formname.textname.value = unescape(splitArray[i 1]);
Какой самый простой способ напечатать значение на странице в виде структуры предложения, а также подготовить значения для отправки?
...
if (splitArray[i] == 'textname')
var x = unescape(splitArray[i 1]);
}
function writeIt(y) { document.write(y); }
для печати на странице confirm.html:
Hello <script>writeIt(x);</script>, welcome to Wonderland.
для передачи на странице confirm.html:
<input type="hidden" name="textname" value="<script>writeIt(x);</script>">
...
<input type="submit" value="Submit"></form>
Необходима ли передача значений в <input>
поля, или я могу полагаться на document.formname.textname.value
то, что они содержат значения формы (фактически без необходимости выписывать HTML (форму <input>
), отличную от кнопки отправки?
Ответ №1:
Я хотел бы проверить информацию, представленную с помощью document.write
document.write
не «отправляет» информацию, она записывается в текущий документ. Если документ закрыт, он сначала вызывает document.open
, который удалит все содержимое.
и передайте значения формы в скрытые поля формы (если это необходимо) для окончательной отправки. Используя онлайн-скрипт, у меня есть значение поля, содержащееся как таковое
if (splitArray[i] == 'textname') document.formname.textname.value = unescape(splitArray[i 1]);
В чем
самый простой способ вывода значения
на странице в чем-то вроде предложения
структурируйте, а также подготовьте значения
для отправки?
Чтобы отобразить текст на странице, добавьте его как TextNode существующего или нового элемента:
var textNode = document.createTextNode('foo bar');
<someElement>.appendChild(textNode);
что может быть сделано в одной строке:
<someElement>.appendChild(document.createTextNode('foo bar'));
Или вы можете задать свойство innerHTML элемента:
<someElement>.innerHTML = 'foo bar';
Кажется странным использовать скрытые элементы для значений, а затем отображать их в другом месте. Почему бы просто не использовать элементы управления формой, доступные только для чтения? Затем отображается ваш текст, он так же защищен от пользовательских изменений, как и скрытые элементы, и готов к отправке.
Комментарии:
1. Спасибо за ваш ответ. Я хочу отобразить их в другом контексте, чтобы предложить пользователю «новую» информацию, которая фактически побудила бы их прочитать то, что они ранее выбрали. Если я представлю им простое повторение того, что они только что видели (т. Е. Форму с выбранными полями) Я думаю, что люди будут более склонны нажимать «Отправить», фактически не читая его и не проверяя информацию.
2. На самом деле, вы правы в предложении сделать поля доступными только для чтения. Это делает свое дело. Еще раз спасибо.