Переменная и select
Добрый день! При выборе select у меня меняется картинка. Так как select может передавать только одну переменную value в скрипт, мне нужно сделать зависимость. То есть выбрали select'ом картинку, скрипт перевел выбранную картинку в переменную и вывел на страницу цифру соответствующую конкретной картинке. Подскажите пожалуйста как реализовать?
P.S. Например: переменная картинка 1 = переменная =5900 <script language="JavaScript"> <!-- function changeImage(form) { selection = form.imagename.options[form.imagename.selectedIndex].value; document.images['pic'].src = selection; var price = 5900 document.getElementById('mydiv').innerHTML = price; } //--> </script> <form> <img name="pic" src="images\1.jpg" alt=""></br> <select size=1 name="imagename" onChange="changeImage(this.form)" id="price"> <option value="images\1.jpg">Картинка 1</option> <option value="images\2.jpg">Картинка 2</option> <option value="images\3.jpg">Картинка 3</option> </select> <div id="mydiv">0</div> </form> |
Navilsor, собери пазл
var base = { 0 : {src : "images\1.jpg", price : 5900}} <option value="0">Картинка 1</option> onChange="changeImage(this.value)" document.images['pic'].src = base[form].src document.getElementById('mydiv').innerHTML = base[form].price |
Собрал, не работает :(
<script language="JavaScript"> <!-- var base = { 1 : {src : "images\1.jpg", price : 5900}} var base = { 2 : {src : "images\2.jpg", price : 6900}} var base = { 3 : {src : "images\3.jpg", price : 7900}} function changeImage(value) { selection = form.imagename.options[form.imagename.selectedIndex].value; document.images['pic'].src = base[form].src document.getElementById('mydiv').innerHTML = base[form].price } //--> </script> <form> <img name="pic" src="images\1.jpg" alt=""></br> <select size=1 name="imagename" onChange="changeImage(this.value)" id="price"> <option value="1">Картинка 1</option> <option value="2">Картинка 2</option> <option value="3">Картинка 3</option> </select> <div id="mydiv">0</div> </form> |
Navilsor,
9 строка лишняя и если вы в 7 строке сделали другое название параметра то и в строке 11 и 13 тоже самое должно быть |
рони,
Тогда берётся только одно последнее значение base. <script language="JavaScript"> <!-- var base = { 1 : {src : "images\1.jpg", price : 5900}} var base = { 2 : {src : "images\2.jpg", price : 6900}} var base = { 3 : {src : "images\3.jpg", price : 7900}} function changeImage(form) { document.images['pic'].src = base[form].src document.getElementById('mydiv').innerHTML = base[form].price } //--> </script> <form> <img name="pic" src="images\1.jpg" alt=""></br> <select size=1 name="imagename" onChange="changeImage(this.value)" id="price"> <option value="0">Выбрать</option> <option value="1">Картинка 1</option> <option value="2">Картинка 2</option> <option value="3">Картинка 3</option> </select> <div id="mydiv">0</div> </form> |
Переменную прописал правильно, но картинки не отображаются
var base = { 1 : {src : "images\1.jpg", price : 5900}, 2 : {src : "images\2.jpg", price : 6900}} |
Navilsor,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <script> var base = { 1: { src: "http://javascript.ru/forum/images/smilies/victory.gif", price: 5900 }, 2: { src: "http://javascript.ru/forum/images/smilies/dance3.gif", price: 6900 }, 3: { src: "http://javascript.ru/forum/images/smilies/cray.gif", price: 7900 } }; function changeImage(form) { document.images["pic"].src = base[form.value].src; document.getElementById("mydiv").innerHTML = base[form.value].price; form.value = 0 }; </script> </head> <body> <form> <img name="pic" src="http://javascript.ru/forum/images/smilies/victory.gif" alt=""></br> <select size=1 name="imagename" onChange="changeImage(this)" id="price"> <option value="0">Выбрать</option> <option value="1">Картинка 1</option> <option value="2">Картинка 2</option> <option value="3">Картинка 3</option> </select> <div id="mydiv">5900</div> </form> </body> </html> |
<html> <head> </head> <body> <form> <img name="pic" src="http://icons.iconarchive.com/icons/guillendesign/variations-3/256/Default-Icon-icon.png" /></br> <select onChange="changeImage(this.value)"> <option value="http://icons.iconarchive.com/icons/guillendesign/variations-3/256/Default-Icon-icon.png 0">Выбрать</option> <option value="http://javascript.ru/forum/image.php?u=39914&dateline=1421334989 5900">Картинка 1</option> <option value="http://javascript.ru/forum/image.php?u=7416&dateline=1372796129 6900">Картинка 2</option> <option value="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif 7900">Картинка 3</option> </select> <div id="mydiv">0</div> </form> <script> d=document.getElementById('mydiv') function changeImage(value) { document.images['pic'].src=value.split(" ")[0] d.innerHTML = value.split(" ")[1] } </script> </body> </html> |
<img id="pic" src="http://icons.iconarchive.com/icons/guillendesign/variations-3/256/Default-Icon-icon.png" /> <br> <select id="changeImage"> <option value="0" data-img="http://icons.iconarchive.com/icons/guillendesign/variations-3/256/Default-Icon-icon.png">Выбрать</option> <option value="5900" data-img="http://javascript.ru/forum/image.php?u=39914&dateline=1421334989">Картинка 1</option> <option value="6900" data-img="http://javascript.ru/forum/image.php?u=7416&dateline=1372796129">Картинка 2</option> <option value="7900" data-img="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif">Картинка 3</option> </select> <div id="mydiv">0</div> <script> window.onload = function () { changeImage.onchange = function () { this.selected = this.options[this.selectedIndex]; pic.src = this.selected.getAttribute('data-img'); mydiv.innerHTML = this.selected.value; }; }; </script> еще вариантик :) |
И еще вопрос, можно ли потом вызвать переменную mydiv и перемножить её с другой переменной?
function calc() { var type = document.getElementById("type"); var mydiv = document.getElementById("mydiv"); myprice += parseInt(type.value*mydiv.value); pricex = myprice; result.innerHTML = pricex; Вылетает NaN почему-то... |
Navilsor,
трудно судить по обрывку кода, делайте полноценный макет как в примерах выше |
Вот:
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <script type="text/javascript"> var base = { 1 : {src : "images/picture1.jpg", price : 5900}, 2 : {src : "images/picture2.jpg", price : 6900}, 3 : {src : "images/picture2.jpg", price : 7900}}; function changeImage(form) { document.images["pic"].src = base[form.value].src; document.getElementById("mydiv").innerHTML = base[form.value].price; form.value = 0 }; function calc() { var type_widht = document.getElementById("type_widht"); var type_height = document.getElementById("type_height"); var type_area = document.getElementById("type_area"); var type_money = document.getElementById("type_money"); var type_mydiv = document.getElementById("mydiv"); var result = document.getElementById("result_widht"); var result = document.getElementById("result_height"); var result = document.getElementById("result_area"); var result = document.getElementById("result_money"); var result = document.getElementById("result"); var price_widht = 0; var price_height = 0; var price_area = 0; var price_money = 0; var pricex = 0; price_widht += parseInt(type_widht.value); price_height += parseInt(type_height.value); price_area += parseInt(type_widht.value*type_height.value)/1000000; price_money += parseInt(type_widht.value*type_height.value*type_mydiv.value)/1000; pricex = price_area; result_area.innerHTML = price_area; result_money.innerHTML = price_money; result.innerHTML = pricex; }; </script> </head> <body> <form> <table> <tr> <td width="200"></td> <td><img name="pic" src="images/picture1.jpg" alt=""></td> </tr> <tr> <td width="200">Укажите Параметр:</td> <td width="200"><select size=1 name="imagename" onChange="changeImage(this)" id="price"> <option value="0">Выбрать</option> <option value="1">Параметр 1</option> <option value="2">Параметр 2</option> <option value="3">Параметр 3</option> </select> </td> <td width="200"><span id="mydiv">0</span> Ед.изм.</td> </tr> <tr> <td width="200"></td> </tr> </table> </form> <table> <tr> <td width="200">Укажите значение widht:</td> <td width="100"><input type="text" id="type_widht" value="0" onchange="calc()" /></td> <td width="200">Результат деления на миллион:<span id="result_area">0</span> Ед.изм.</td> </tr> <tr> <td width="200">Укажите значение height:</td> <td width="100"><input type="text" id="type_height" value="0" onchange="calc()" /></td> <td width="200">Результат деления на тысячу:<span id="result_money">0</span> Ед.изм.</td> </tr> <tr style="background-color:#eeeeee;border:1px solid #c6c6c6"> <td width="200" class="td_result">ИТОГО:</td> <td width="100"></td> <td class="td_result"><span id="result">0</span> Ед.изм.</td> </tr> </table> </body> </html> |
Цитата:
|
Цитата:
|
Что-то я не дружу с dataset. Подскажите плиз?
var dollar = $(selector).data('myValue'); <div id="mydiv" data-my-value="mydiv">0</div> |
Navilsor,
вы не это ищите? document.getElementById("mydiv").innerHTML по дата http://learn.javascript.ru/dataset-api |
Беру переменную. и опять NaN
var type_mydiv = document.getElementById("mydiv").innerHTML; |
Navilsor,
:-? строка 40 <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <script type="text/javascript"> var base = { 1 : {src : "images/picture1.jpg", price : 5900}, 2 : {src : "images/picture2.jpg", price : 6900}, 3 : {src : "images/picture2.jpg", price : 7900}}; function changeImage(form) { document.images["pic"].src = base[form.value].src; document.getElementById("mydiv").innerHTML = base[form.value].price; form.value = 0 }; function calc() { var type_widht = document.getElementById("type_widht"); var type_height = document.getElementById("type_height"); var type_area = document.getElementById("type_area"); var type_money = document.getElementById("type_money"); var type_mydiv = document.getElementById("mydiv"); var result = document.getElementById("result"); var price_widht = 0; var price_height = 0; var price_area = 0; var price_money = 0; var pricex = 0; price_widht += parseInt(type_widht.value)||0; price_height += parseInt(type_height.value)||0; price_area += parseInt(type_widht.value*type_height.value)/1000000; price_money += parseInt(type_widht.value*type_height.value*type_mydiv.innerHTML)/1000; pricex = price_area; result_area.innerHTML = price_area; result_money.innerHTML = price_money; result.innerHTML = pricex; }; </script> </head> <body> <form> <table> <tr> <td width="200"></td> <td><img name="pic" src="images/picture1.jpg" alt=""></td> </tr> <tr> <td width="200">Укажите Параметр:</td> <td width="200"><select size=1 name="imagename" onChange="changeImage(this)" id="price"> <option value="0">Выбрать</option> <option value="1">Параметр 1</option> <option value="2">Параметр 2</option> <option value="3">Параметр 3</option> </select> </td> <td width="200"><span id="mydiv">0</span> Ед.изм.</td> </tr> <tr> <td width="200"></td> </tr> </table> </form> <table> <tr> <td width="200">Укажите значение widht:</td> <td width="100"><input type="text" id="type_widht" value="0" onchange="calc()" /></td> <td width="200">Результат деления на миллион:<span id="result_area">0</span> Ед.изм.</td> </tr> <tr> <td width="200">Укажите значение height:</td> <td width="100"><input type="text" id="type_height" value="0" onchange="calc()" /></td> <td width="200">Результат деления на тысячу:<span id="result_money">0</span> Ед.изм.</td> </tr> <tr style="background-color:#eeeeee;border:1px solid #c6c6c6"> <td width="200" class="td_result">ИТОГО:</td> <td width="100"></td> <td class="td_result"><span id="result">0</span> Ед.изм.</td> </tr> </table> </body> </html> |
Часовой пояс GMT +3, время: 18:07. |