Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Смена картинки по нажатию на чебокс (https://javascript.ru/forum/misc/14686-smena-kartinki-po-nazhatiyu-na-cheboks.html)

Vulkan 26.01.2011 18:35

Объясните что именно хотите, по действиям, например при нажатии на тото будет такое действие, а на другое такое.

ksa 26.01.2011 21:20

Цитата:

Сообщение от arahmanov
if(int == 1) int = 1200;
else if (int == 2) int = 2100;
else if (int == 3) int = 3000;
else if (int == 4) int = 3900;
else if (int == 5) int = 4800;
else if (int == 6) int = 5500;
else if (int == 7) int = 6200;
else if (int == 8) int = 6900;
else if (int == 9) int = 6700;
else if (int == 10) int = 8300;
else if (int == 11) int = 8900;
else if (int == 12) int = 9500;
else if (int == 13) int = 10100;
else if (int == 14) int = 10700;
else if (int == 15) int = 11300;
else if (int == 16) int = 11900;
else if (int == 17) int = 12500;
else if (int == 18) int = 18300;
else if (int == 19) int = 13700;
else if (int == 20) int = 14300;
else if (int == 21) int = 14900;
else if (int > 21) int = int * 600;

Есть более удобная конструкция
http://javascript.ru/switch

switch (int) {
  case 1:
    int = 1200
    break
  case 2:
    int = 2100
    break
  case 3:
    int = 3000
    break
    // так продолжить до 21
  default:
    int = int * 600
}


Или вариант с массивом

var data=[1200, 2100, 3000] // и так все 21-но значение
if (int < 22) {
   int = data[int-1]
} else {
   int = int * 600
}

Все посимпотнее будет смотреться... :)

arahmanov 27.01.2011 19:20

По действиям у меня две переменные одна передается
function go(){
var int = document.getElementById('comp').value,
result = document.getElementById('result');
if(int == 1) int = 1200;
с этим я кое как разобрался,



а вторая переменная

<script>
function Go() {
document.getElementById('scr').src=(document.getEl ementById('typ').checked)? 'images/moto2.jpg':
'images/moto4.jpg'
var n=(document.getElementById('typ').checked)? 500: 0
document.getElementById('result').innerHTML = this.value;
}
</script>
<div id="result"></div>



но тут возникает вопрос у функций одно имя Go и как в этом случае быть как сделать чтобы оба скрипта работали и при этом я бы еще хотел их сложить :)))

ksa 27.01.2011 21:09

Цитата:

Сообщение от arahmanov
как сделать чтобы оба скрипта работали и при этом я бы еще хотел их сложить

Начать можно с простого объединения кода
<script>
function Go() {
   // тут первая часть
   // тут вторая часть
   // тут чего-то там сложить
}
</script>

arahmanov 27.01.2011 22:27

Спасибо огромное всем!!! очень мне сильно помогли!!!...

arahmanov 27.01.2011 23:52

подскажите пожалуйста,
<script type="text/javascript">

function showMe (box) {
var vis = (box.checked) ? "block" : "none";
document.getElementById('div1').style.display = vis;
}

</script>


<input type="checkbox" name="multi_note" value="1" onClick="showMe(this)"> Firewall


<div id="div1" style="display:block; display:none;">
<select id="firewall">
<option value="select">Выберите тип...</option>
<option value="200">Аппаратное устройсво</option>
<option value="700">Програмное решение</option>

</select>
</div>
так сделав выбор я хочу также добавить функцию go, причем картнки уже показывается не от положения чебокса а от выбора селекта) так вот вопрос
как записать эту функция. / я понимаю (кажется как она должна выглядеть но записать правильно не могу )

находим элемент с id
function Go() {
document.getElementById('firewall')
потом наверное надо как то спросить какое у нее значение 200 или 700
и взаимозависимости от этого вывести картинку при этом поместив значения в переменные.

и наконец последний вопрос
( с чего начать чтобы понимать структуры записи в jquery и javascript ) не могу же я все время спрашивать :))))) посоветуйте книжку или видео урок может чей ....

ksa 28.01.2011 09:12

Цитата:

Сообщение от arahmanov
находим элемент с id
function Go() {
   document.getElementById('firewall')
}

потом наверное надо как то спросить какое у нее значение 200 или 700

Как вариант...

<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
</style>
<script>
function Go() {
   var o=document.getElementById('firewall')
   alert(o.value)
}
</script>
</head>
<body>
<select id="firewall" onchange='Go()'>
	<option value="select">Выберите тип...</option>
	<option value="200">Аппаратное устройсво</option>
	<option value="700">Програмное решение</option>
</select>
</body>
</html>

ksa 28.01.2011 09:14

Цитата:

Сообщение от arahmanov
с чего начать чтобы понимать структуры записи в jquery и javascript

Например прочитать таки книжку "JavaScript для чайников" или "JavaScript за 24 часа"... Это очень хорошие серии для новичков. Они описали почти все направления в ИТ. :D

arahmanov 28.01.2011 09:52

:)) ржу не могу. сегодня же займусь.

внедрил ваш скрипт правда не много пришлось поковырять чтобы передать значения а то у меня не выдавало не число а слово не 200 а "200" но с этим разобрался. самостоятельно .

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

var gop = o.value
if (gop == "200") {gop=200}
else if (gop == "700") {gop=700}
else if (gop == "0") {gop=0};

var fire=(document.getElementById('firewall').checked) ? gop: 0 так вот можно ??? наверное нельзя потому что неработает


result.innerHTML = int + n + k + fire;



<select id="firewall" onchange='Go()'>
<option value="0">Выберите тип...</option>
<option value='200'>Аппаратное устройсво</option>
<option value='700'>Програмное решение</option>
</select>

ksa 28.01.2011 10:33

Цитата:

Сообщение от arahmanov
я отмечаю чебокс у меня выпадает список в списке три значения допустим я выбираю один из них а потом выключаю чебокс но значение то у меня осталось, как его сбросить при выключенном чебоксе

Если в изменениях участвуют несколько полей нужно:
- либо вешать одинаковую функцию на события всех участвующих полей
- либо делать кнопку типа "Расчитать" и все действия выполнять по её нажатию.


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