2009-05-05 3 views
0

Надеюсь, кто-то может мне помочь. Я пытаюсь получить доступ к текстовому полю внутри веб-страницы, поэтому я могу сделать некоторые скрипты, например. размещение текста в полях, проверка поля и нажатие кнопки, автоматизация рабочего процесса моих сотрудников. Это сбивает с толку, потому что я не могу найти имя/id/все, что позволит мне манипулировать формой. Я могу увидеть имя поля, которое я пытаюсь использовать Firebug («history [comment]») и id, если это помогает («history_comment»), но независимо от того, что я делаю, форма не будет обрабатываться , На основании других сценариев я сделал, это AppleScript:Попытка доступа к элементам javascript внутри страницы

do JavaScript "document.forms[1].history_comment.value='Testing';" in document 1 

должен делать свою работу, сообщая браузер поставить «Testing» в соответствующем поле. Я заменил другие имена, которые, как я думаю, может быть тем, чего он хочет, и попытался ссылаться на любые другие формы (формы [2], формы [3]), все это напрасно. На самом деле я немного запутался, потому что в HTML не существует никаких утверждений, так что, возможно, я напортачиваюсь там.

Я отправил HTML-дамп формы в http://images.jlist.com/testform.html (с фиктивной информацией, конечно), если любая душа может взять гусака и дать мне какое-то направление. Моя цель - предоставить информацию в поле «Комментарий». Есть ли сценарий, который я могу запустить, который скажет мне полное имя (насколько это касается браузера) каждого элемента в форме?

ответ

-1

, так как ваш элемент является текстовой области, это должно быть сделано так:

document.getElementById ('history_comment') innerHTML = 'ПРИВЕТ';.

с помощью innerHTML вместо значения

+0

Нет, значение работает нормально, является стандартным и не требует, чтобы вы избегали символов, таких как <и &. – Quentin

+0

TextArea по-прежнему .value –

1

если вы можете использовать JQuery, то вы можете сделать это довольно легко с помощью следующей команды

$("history_comment").val("HELLO"); 
1

JavaScript должен быть:

document.getElementById("history_comment").value='Testing'; 

документ .forms является нестандартным и, как и в вашем примере кода, терпит неудачу, если элемент не находится внутри формы. Это довольно распространено в приложениях AJAX и еще одна веская причина избежать document.forms.

+0

Хотя я и не сторонник использования document.forms, это не совсем так; document.forms является частью спецификации DOM Level 1. http://www.w3.org/TR/REC-DOM-Level-1/level-one-html.html#ID-1689064 –

0

Что написал @Kikuchyo, хотя на самом деле это строго неправильно не вложить элементы формы, как textarea в form теге. Вам также понадобится этот тег form, если (как вы предлагаете) вы хотите программно представить форму. Так как вы уже доступ к этому текстовому полю, вы можете получить форму от этого в вашем яваскрипте функции:

var thetext=document.getElementById('history_comment'); 
thetext.value='whatever you want to put in there'; 
thetext.form.submit(); // all form elements have a 'form' property 

Вы можете получить на состоянии флажка в document.getElementById('history_notify').checked; это логическое значение, поэтому установите его на true или false и используйте его в условных выражениях напрямую.

Конечно, если (как, глядя на форму, вы, скорее всего, захотите), вы хотите отправить AJAX, вам нужно проверить документацию для любой используемой библиотеки-обертки.

Смежные вопросы