Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   Скрипт для заполнения поля формы (https://javascript.ru/forum/css-html-browser/22025-skript-dlya-zapolneniya-polya-formy.html)

vatras 03.10.2011 15:58

Скрипт для заполнения поля формы
 
Сразу оговорюсь в скриптах я новичок, да и образование гуманитарное. Так что сильно не бейте :) .

Хочу чтобы в форме поиска сайта автоматически заполнялось одно из полей поиска, а именно - мой ник. Браузер: Opera 11.01

Скрипт выглядит так

// ==UserScript==
// @include [url]http://forum.kinopoisk.ru/search.php[/url]
// ==/UserScript==

(function bookmark() {
var name_input = document.getElementById('userfield_txt');
name_input.value="vasya"
})();



Opera dragonfly пишет:

Uncaught exception: TypeError: Cannot convert 'name_input' to object
Error thrown at line 7, column 0 in bookmark() in new.js:
name_input.value="vasia"
called from line 5, column 0 in new.js:
(function bookmark() {


Был еще вариант

// ==UserScript==
// @include [url]http://forum.kinopoisk.ru/search.php[/url]
// ==/UserScript==

(function bookmark() {
document.getElementById('userfield_txt').value="vasia"
})();


Но это как я понимаю те же яйца только в профиль и тоже с ошибкой:

Uncaught exception: TypeError: Cannot convert 'document.getElementById('userfield_txt')' to object
Error thrown at line 6, column 0 in bookmark() in new.js:
document.getElementById('userfield_txt').value="va sia"
called from line 5, column 0 in new.js:
(function bookmark() {


Если что, вот фрагмент кода (на загружаемой странице) где указывается id поля

<tr>
<td colspan="2">
<div>
<div id="userfield" unselectable="true">
<input type="text" class="bginput" name="searchuser" id="userfield_txt" size="35" value="" style="width:250px" autocomplete="off"/>
</div>
<div id="userfield_menu" class="vbmenu_popup" style="display: none; position: absolute; z-index: 50"/>
<script type="text/javascript" src="clientscript/vbulletin_ajax_namesugg.js?v=387"/>
<script type="text/javascript">
</td>
</tr>



Если что, подставлял вместо userfield_txt -> userfield. Результат тот-же.


Что делаю не так?

ksa 03.10.2011 16:08

Цитата:

Сообщение от vatras
Был еще вариант

Вполне работающий вариант...

<input type="text" class="bginput" name="searchuser" id="userfield_txt" size="35" value="" style="width:250px" autocomplete="off"/>

<script type="text/javascript">
(function bookmark() {
	document.getElementById('userfield_txt').value="vasia"
})();
</script>

vatras 03.10.2011 16:44

ksa

Вставляю Ваш код в свой Js файл. Теперь целиком он выглядит так:
// ==UserScript==
// @include [url]http://forum.kinopoisk.ru/search.php[/url]
// ==/UserScript==

<input type="text" class="bginput" name="searchuser" id="userfield_txt" size="35" value="" style="width:250px" autocomplete="off"/>

<script type="text/javascript">
(function bookmark() {
	document.getElementById('userfield_txt').value="vasia"
})();
</script>


ошибок не выдается, но и поле не заполняется.

Наверное я опять где-нибудь накосячил?

ваый 03.10.2011 18:22

А если так:
// ==UserScript==
// @include [url]http://forum.kinopoisk.ru/search.php[/url]
// ==/UserScript==

addEventListener('load', function(e) {
    var nameInput = document.getElementById('userfield_txt');
    nameInput.value = "vasya";
}, false);

walik 03.10.2011 18:37

vatras,
Вы инпут то не ставьте в JS файл, его надо на HTML страничку ставить.
И тег script в JS файле не нужен

vatras 03.10.2011 18:40

ваый, огромное Вам спасибо! Ваш вариант кода работает! Жаль, не могу до конца разобраться в нем, (квалификация не та:) ). Еще раз выражаю огромную Вам благодарность и конечно ksa и walik тоже.

valdemariuses 07.12.2016 14:11

Цитата:

Сообщение от ваый (Сообщение 129367)
А если так:
// ==UserScript==
// @include [url]http://forum.kinopoisk.ru/search.php[/url]
// ==/UserScript==

addEventListener('load', function(e) {
    var nameInput = document.getElementById('userfield_txt');
    nameInput.value = "vasya";
}, false);

Здравствуйте. Подскажите, а можно ли реализовать то же только учитывая не id а class элемента?
Я попробовал вместо document.getElementById прописат document.getElementsByClassName но ничего не работает.

ksa 07.12.2016 15:57

Цитата:

Сообщение от valdemariuses
а можно ли реализовать то же только учитывая не id а class элемента?

Можно. :yes:
Для этого так же нужно однозначно определить элемент ДОМ-дерева.

m~r.Nemo 11.01.2019 12:35

Как сделать чтобы информация выводимая скриптом была в поле ввода

<html>
<body>
<script type='text/javascript'>
document.write(navigator.userAgent);
</script>
<input type="text" valye=""/>
</body>
</html>

j0hnik 11.01.2019 12:38

<input type="text" id="userAgent" />
<script>
	userAgent.value = navigator.userAgent;
</script>


Часовой пояс GMT +3, время: 02:04.