Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   изменение input.value по клику (https://javascript.ru/forum/events/1265-izmenenie-input-value-po-kliku.html)

farik 30.05.2008 11:23

изменение input.value по клику
 
есть такой кусок хтмл

<frorm ......>

<dl class="rating">
<dd class="rate3" id="rrr">
<ul>
<li class="r1"><a href="#">1</a></li>
<li class="r2"><a href="#">2</a></li>
<li class="r3"><a href="#">3</a></li>
<li class="r4"><a href="#">4</a></li>
<li class="r5"><a href="#">5</a></li>
<li class="r6"><a href="#">6</a></li>
</ul>
</dd>
</dl>

<input type="hidden" value="3" .... >
</form>

я javascript еще и не начинал изучать т.е. полный ноль

мне нужно чтобы по клику на одной из ссылок:
1 - менялся стиль у елемента dd на rate1-rate6
2 - при этом же клике чтоб менялось value у инпута

пожайлуста помогите, если нужно могу отблагодарить, вмз.

hogart 30.05.2008 13:22

Верстку надо чуток изменить для удобства:
<dl class="rating">
<dd class="rate3" id="ratedisplay">
    <ul id="marks">
        <li class="r1">1</li>
        <li class="r2">2</li>
        <li class="r3">3</li>
        <li class="r4">4</li>
        <li class="r5">5</li>
        <li class="r6">6</li>
    </ul>
</dd>
</dl>

<input type="hidden" value="3" id="ratevalue"/>


Скрипт будет примерно такой:

window.onload = function() {
    var ratevalue = document.getElementById('ratevalue');
    var rate = document.getElementById('ratedisplay');
    var marks = document.getElementById('marks');
    
    var marklink;
    for (var mark in marks) {
        mark.onclick = function() {
            ratevalue.value = this.innerHTML;
            ratedisplay.className = 'rate' + this.innerHTML;
        }
    }
}


Яндекс-деньги слать на счет номер 41001166313626 :D

yyyyuriyyyy 13.07.2014 11:35

Цитата:

Сообщение от hogart (Сообщение 2723)
Верстку надо чуток изменить для удобства:
<dl class="rating">
<dd class="rate3" id="ratedisplay">
    <ul id="marks">
        <li class="r1">1</li>
        <li class="r2">2</li>
        <li class="r3">3</li>
        <li class="r4">4</li>
        <li class="r5">5</li>
        <li class="r6">6</li>
    </ul>
</dd>
</dl>

<input type="hidden" value="3" id="ratevalue"/>


Скрипт будет примерно такой:

window.onload = function() {
    var ratevalue = document.getElementById('ratevalue');
    var rate = document.getElementById('ratedisplay');
    var marks = document.getElementById('marks');
    
    var marklink;
    for (var mark in marks) {
        mark.onclick = function() {
            ratevalue.value = this.innerHTML;
            ratedisplay.className = 'rate' + this.innerHTML;
        }
    }
}


Яндекс-деньги слать на счет номер 41001166313626 :D

Не работает

рони 13.07.2014 12:15

yyyyuriyyyy,
:-?
а так?
window.onload = function () {
    var ratevalue = document.getElementById("ratevalue");
    var rate = document.getElementById("ratedisplay");
    var marks = document.getElementById("marks").getElementsByTagName("li");
    for (var i = 0; i < marks.length; i++) marks[i].onclick = function () {
        ratevalue.value = this.innerHTML;
        ratedisplay.className = "rate" + this.innerHTML
    }
};


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