Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Помогите с celect-om (https://javascript.ru/forum/dom-window/8422-pomogite-s-celect-om.html)

BorisBritva 25.03.2010 15:51

Я имею в виду, что там маловато инфы для того чтобы написать такой сайт.
Там собраны все азы и все доходчиво объяснено. Для начала лучше не найдешь!

kibal4iw 25.03.2010 18:26

Прочитал название темы, сам попробовал решить эту задачу. В JS пока не сильно силен, сделал как мог. Моя проблема в том, что код не адекватно работает в Mozilla, ф во всех броузерах норм. Не могли бы подсказать в чем моя ошибка?

<form action="" method="get" name="user" id="user">
    <select id="user_id">
        <option value="1" /> User 1 
        <option value="2" /> User 2
        <option value="3" /> User 3
        <option value="4" /> User 4
        <option value="5" /> User 5
    </select><br />
    <input type="button" id="but" value="Change" />
</form>

<img src="" id="imgUser" width="350">


<script>
    var but = document.getElementById("but");
	onload = f_ChangeUse;
	
	if (but.addEventListener) {
		but.addEventListener("click", f_ChangeUse, false);
	} else {
		but.attachEvent("onclick", f_ChangeUse);
	}
	
	function f_ChangeUse() {
		var val = document.forms("user").user_id.value;
		document.getElementById("imgUser").src = "img/user_" + val  + ".jpg";	
	}
</script>

SkyLight 25.03.2010 18:33

В 12 строке не круглые скобки, а квадратные надо. Да, и кто вас учил так писать option? Чтобы было валидно, надо так:
<option value="1">User 1</option>

И тегу script лучше указать type="text/javascript"

Nekromancer 25.03.2010 18:33

<form action="" method="get" name="user" id="user">
    <select id="user_id">
        <option value="1" /> User 1
        <option value="2" /> User 2
        <option value="3" /> User 3
        <option value="4" /> User 4
        <option value="5" /> User 5
    </select><br />
    <input type="button" id="but" value="Change" />
</form>
 
<img src="img/user_1.jpg" id="imgUser" width="350">
<script>
    var but = document.getElementById("but");
    onload = f_ChangeUse;
     
    if (but.addEventListener) {
        but.addEventListener("click", f_ChangeUse, false);
    } else {
        but.attachEvent("onclick", f_ChangeUse);
    }
     
    function f_ChangeUse() {
        var val = document.forms["user"].user_id.value;
        document.getElementById("imgUser").src = "img/user_" + val  + ".jpg";  
    }
</script>

kibal4iw 25.03.2010 18:51

Цитата:

Сообщение от SkyLight (Сообщение 49067)
Чтобы было валидно, надо так:
<option value="1">User 1</option>

И тегу script лучше указать type="text/javascript"

Я за валидностью сейчас не гонюсь, хотя соглашусь с вами полностью. :yes:

За подсказку спасибо большое, просто нужно быть внимательнее

BorisBritva 27.03.2010 16:22

Люди добрые. Помогите пожалуйста.

Есть 2 разных селекта
<select id="on_user">
<option value="1">Один</option>
<option value="2">Два</option>
<option value="3">Три</option>
</select>


<select id="id_user">
<option value="1">Петя</option>
<option value="2">Вася</option>
<option value="3">Лена</option>
</select>


Надо сделать чтобы при выборе в первом селекте выделялся option во втором с таким же value.
Я работаю с jQuery.

Вот пример который выдиляет первый option во втором селекте.
$('select[id=id_user] option:first').attr('selected', 'yes');

Может кто подскажет как сделать чтобы выделялся тот у которого такой же value?!

Я сделал вот так:
$('#on_user').change(function() {
$('select[id=id_user] option:eq('+this.value+')').attr('selected', 'yes');
});

Но почемуто в Опере работает только на последний option. IE вообще не воспринимает. В FF все работает.

Может кто подскажет как лучше сделать?

Shaci 27.03.2010 23:23

Цитата:

В FF все работает
нигде не работает, неправильно
что по вашему делает селектор eq(n)?

В качестве быстрой правки можно вот так сделать
$('#on_user').change(function() {
$('select[id=id_user] option:eq('+(this.value-1)+')').attr('selected', 'yes');
});

но это будет работать (по крайней мере в IE6 и FF), если value по порядку будут идти,
а вообще нужно все переделать

bassolo 18.04.2010 17:18

Напишите, пожалуйста, скрипт:)

есть формы: select (значение1, значения2); text1;text2

нужно следущее:

при выборе значения 1 содержимое формы text = 1,text2 виден
при выборе значения 2 содержимое формы text = 2, text2 не виден

html:
<select name="sel">
<option>значение1</option>
<option>значения2</option>

<input type="text" name="text1">
<input type="text" name="text2" value="TEXT2">

Спасибо)

SkyLight 18.04.2010 18:46

Писать скрипт просто так мало кто будет. Вам надо отлавливать событие onchange у селекта, проверять текущее значение и в зависимости от него устанавливать value у text1 и менять display или visible у text2. Ключевики я дал, в поиск.

bassolo 22.04.2010 11:01

ну вот, набрасал что-то...
только работает с цифрами, а с текстом - нет.
т.е.

это работает
if (l1=="2")
 document.formText.t1.value="235";


а это не работает
if (l1=="text")
document.formText.t1.value="235";

Вот весь код:
<script>
function uklon()
{
var objSel = document.getElementById("SelectId"); 

 l1=objSel.selectedIndex
if (l1=="1")
 document.formText.t1.value="4567";
 document.formText.t1.style.display="inline";  
 if (l1=="2")
 document.formText.t1.value="235";
 if (l1=="text")
 document.formText.t1.style.display="none"; 
}
</script>
<form name="formText">
<select   onChange="uklon()" id="SelectId">
<option  >text</option>
<option  >1</option>
<option  >2</option> 
<input type="text"  name="t1" value=""> 
</form>


почему?


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