Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   Автозаполнение полей (https://javascript.ru/forum/xhtml-html-css/9995-avtozapolnenie-polejj.html)

Limon 15.06.2010 01:27

Автозаполнение полей
 
Всем привет! Помогите пожалуйста.
В общем нужно чтобы автоматически выбирало страну и заполняло поля вот в ЭТОЙ форме, НО дело в том что коды этих полей меняются :(
Когда коды не менялись, использовал вот этот скрипт:
// ==UserScript==
// @name           Limon
// @namespace      Limon
// @description     This baby will autofill the form fields in the redeem page!
// @include        *lockerz.com*
// @include        *ptzplace.lockerz.com*
// @version        1.0
// @author         Limon
// ==/UserScript==

var country = "Russia";
var countryCode = "RU";

var phoneWhole = "телефон";

var firstName = "имя";
var lastName = "фамилия";

var address1 = "улица дом/кв.";
var address2 = "";

var city = "город";
var state = "RU";
var zip = "индекс";


document.getElementById("state").value = state;
document.getElementById("statesClicker").getElementsByTagName("SPAN")[0].innerHTML = state;
document.getElementById("stateDetails").value = state;

document.getElementById("country").value = country;
document.getElementById("countryClicker").getElementsByTagName("SPAN")[0].innerHTML = country;
document.getElementById("countryDetails").value = country;
window.location= "javascript: manipulateForm('"+countryCode+"');";

document.getElementById("phoneWhole").value = phoneWhole;

document.getElementById("firstName").value = firstName;
document.getElementById("lastName").value = lastName;

document.getElementById("address1").value = address1;
document.getElementById("address2").value = address2;

document.getElementById("city").value = city;
document.getElementById("state").value = state;
document.getElementById("zip").value = zip;

document.getElementById('recaptcha_response_field' ).focus();

Может кто знает еще способ, помогите, буду очень благодарен

Limon 15.06.2010 01:46

ой, саму ссылку на форму заполнения забыл написать :) ВОТ

Octane 15.06.2010 02:26

К каждому input привязан label:
<label for="input-id">text</label>

можно вытаскивать текст из label и находить соответствующий input по id, взятому из атрибута for.

Limon 15.06.2010 02:39

Извини конечно, но я в js не очень разбираюсь, не мог бы разъяснить чуток :)

Limon 15.06.2010 02:42

а лучше пример привести или, если не сложно, сделать полность ;)

Octane 15.06.2010 02:55

Тут особых знаний не нужно, находишь форму с идентификатором shippingForm, затем получаешь список всех <label> внутри этой формы, проходишь по ним в цикле, доставая из атрибута for (свойство htmlFor) идентификатор связанного <input>, а что подставлять в value для <input>, определяешь по значению label.innerHTML.

За готовым скриптом обращайтесь в раздел работа.

Limon 15.06.2010 04:13

так, ну вот нашел, допустим имя:
<label id="lbFirstName" for="fn_11121">FIRST NAME<span
 class="mandatory">*</span></label>

                    	<input value="ИМЯ" id="fn_11121" 
name="fn_11121" class="shipBox" maxlength="20" autocomplete="off" 
type="text">


fn_11121 - вот это значение как раз таки меняется, ты может не понял меня или я тебя не понял :D

Octane 15.06.2010 04:23

for="fn_11121" и id="fn_11121" не видите что ли?

Limon 15.06.2010 04:33

вижу, и что? эти значения каждый раз меняются! еще раз сказать?

Octane 15.06.2010 04:34

Текст метки "FIRST NAME" не меняется, и метка однозначно связана с полем ввода (for → id), еще раз объяснить?

Limon 15.06.2010 04:43

хм... и что тогда получается так?
var firstName = "ИМЯ";
document.getElementById("FIRST NAME").value = firstName;

Octane 15.06.2010 04:48

Нет.

Видимо у вас нулевой уровень знаний в JavaScript. На этом сайте есть весь необходимый материал для изучения: http://javascript.ru/doctree После прочтения раздела «DOM: работа с HTML-страницей» у вас должно получится решить эту задачу.

Limon 15.06.2010 05:06

да, знаний нет. Поэтому и прошу помочь, сделайте одно хотя бы, пожалуйста.
var firstName = "ИМЯ";
document.getElementsByName("FIRST NAME").value = firstName;
Снова не правильно?

Octane 15.06.2010 06:17

Цитата:

Сообщение от Limon
document.getElementsByName("FIRST NAME").value = firstName;
Снова не правильно?

Почему вы мои сообщения игнорируете?
Цитата:

Сообщение от Octane
находишь форму с идентификатором shippingForm, затем получаешь список всех <label> внутри этой формы, проходишь по ним в цикле, доставая из атрибута for (свойство htmlFor) идентификатор связанного <input>, а что подставлять в value для <input>, определяешь по значению label.innerHTML.

Разве ваш код тоже самое, что тут написано?

Цитата:

Сообщение от Limon
сделайте одно хотя бы, пожалуйста

Форум для общения JavaScript-программистов, а не для того, чтобы кто-то за кого-то сделал работу http://phpclub.ru/faq/WhyForum Подсказку, как сделать, вы получили, причем все описано подробнейшим образом, теперь приложите усилия сами или воспользуйтесь платными услугами специалиста.

Limon 15.06.2010 15:47

Я уверен что Вы знаете JS как свои пять пальцев!
Ну напишите пожалуйста один пример, ПОЖАЛУЙСТА ПРОШУ!

Limon 15.06.2010 15:53

<label id="lbFirstName" for="fn_11121">FIRST NAME<span
 class="mandatory">*</span></label>
                        <label id="lbLastName" for="ln_11121">LAST NAME<span
 class="mandatory">*</span></label>
                        <label id="lbAddress1" for="a1_11121">ADDRESS 1<span
 class="mandatory">*</span></label>
                        <label id="lbAddress2" for="a2_11121">ADDRESS 2</label>
                        <label id="lbCity" for="cy_11121">CITY<span 
class="mandatory">*</span></label>
                        <label id="lbState" for="s_11121">STATE / 
PROVINCE<span class="mandatory">*</span></label>
                        <label id="lbZip" for="z_11121">POSTAL CODE<span
 class="mandatory">*</span></label>
                        <label id="lbPhone" for="_phoneOne">PHONE<span 
class="mandatory">*</span></label>
                        <label id="lbCountry" for="c_11121">COUNTRY<span
 class="mandatory">*</span></label>
                    
                    	<input value="имя" id="fn_11121" 
name="fn_11121" class="shipBox" maxlength="20" autocomplete="off" 
type="text">
                        <input value="фамилия" id="ln_11121" 
name="ln_11121" class="shipBox" maxlength="20" autocomplete="off" 
type="text">
                        <input value="адрес1" id="a1_11121" 
name="a1_11121" class="shipBox" maxlength="30" autocomplete="off" 
type="text">
                        <input value="адрес2'" 
id="a2_11121" name="a2_11121" class="shipBox" maxlength="30" 
autocomplete="off" type="text">
                        <input value="Novaja Malykla" id="cy_11121" 
name="cy_11121" class="shipBox" maxlength="30" autocomplete="off" 
type="text">
                        <input value="RU" style="visibility: visible;" 
id="s_11121" name="s_11121" class="shipBox" maxlength="20" 
autocomplete="off" type="text">
                        <input value="индекс" id="z_11121" 
name="z_11121" class="shipBox" maxlength="10" autocomplete="off" 
type="text">
                        <input value="телефон" style="display: 
none;" id="_phoneOne" name="_phoneOne" class="shipBox" maxlength="3" 
autocomplete="off" type="text">
                        <input value="телефон" style="display: 
none;" id="_phoneTwo" name="_phoneTwo" class="shipBox" maxlength="3" 
autocomplete="off" type="text">
                        <input value="телефон" style="display: 
none;" id="_phoneThree" name="_phoneThree" class="shipBox" maxlength="4"
 autocomplete="off" type="text">
                        <input value="телефон" style="display: 
block;" id="_phoneWhole" name="_phoneWhole" class="shipBox" 
maxlength="20" autocomplete="off" type="text">
                        
                    	<input value="RU" name="c_11121" id="c_11121" 
type="hidden">
                        <input value="" name="t_11121" id="t_11121" 
type="hidden">
                        <input value="Russia" name="_countryDetails" 
id="_countryDetails" type="hidden">
                        <input value="" name="_stateDetails" 
id="_stateDetails" type="hidden">

рони 17.06.2010 07:01

сделай проще id у label не меняеться то
var firstName = "имя";
id = document.getElementById('lbFirstName').attributes["for"].value;
document.getElementById(id).value=firstName;

и далее в томже духе


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