Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   input text отображение value (https://javascript.ru/forum/misc/44437-input-text-otobrazhenie-value.html)

BaHTuc 19.01.2014 18:57

input text отображение value
 
всем привет, пытаюсь написать "shopecard" но не могу отобразить в <input type="text" id="chtom"> value. надо что бы при выборе одного из option в "chtom" отображалось его value.
помогите скрипт написать.

ниже часть кода. если надо могу скинуть полный код

<select id="chto">
<option id="bag" value="10">bag</option>
<option id="t-shirt" value="20">t-shirt</option>
<option id="shose" value="30">shose</option>
<option id="shirt" value="40">shirt</option>
<option id="pen" value="50">pen</option>
</select>
<input type="text" id="chtom"><br/>

Vlasenko Fedor 19.01.2014 21:35

<select id="chto" onchange="chtom.value=this.value;">
      <option  value="">выберите</option>
      <option id="bag" value="10">bag</option>
      <option id="t-shirt" value="20">t-shirt</option>
      <option id="shose" value="30">shose</option>
      <option id="shirt" value="40">shirt</option>
      <option id="pen" value="50">pen</option>
    </select>
    <input type="text" id="chtom">

BaHTuc 20.01.2014 02:21

спасибо:dance:
только не пойму как:blink: :blink:
буду благодарен за объяснение

Vlasenko Fedor 20.01.2014 02:30

Событие onchange возникает при изменении значения элемента
onchange="chtom.value=this.value;"

chtom - id элемента
this - текущий элемент вызвавший событие
value значение элемента
получается при возникновении события onchange в элемеенте select, мы присваеваем его значение this.value другому элементу

BaHTuc 21.01.2014 10:49

спасибо!!:write:

Lecseus 02.10.2015 05:25

Всем доброго времени суток. Дабы не захламлять новыми темами напишу в этой, да простит меня автор сей темы. Пишу простенькую программку высчета валют. У меня такой вопрос, каким образом сделать так, чтобы при нажатии на кнопку результат появился не в текстареа, чтобы вообще textarea не использовать, а в поле, похожем на input и вообще, как сделать, чтобы калькуляция происходила в том же поле, в которое ставлю значение, которое надо будет высчитать? И ещё вопрос по кнопкам, могу ли я вместо кнопки поставить картинку и как я могу это сделать? Помогите, пожалуйста?
<!DOCTYPE HTML>
<html>
 <head>
	<title>MY CURRENCY CONVERTER</title>
	<meta http-equiv="Content-Type" content="text/html;  charset=utf-8">
	<link rel="stylesheet" type="text/css" href="domstyle.css">
<script type="text/javascript">
	function rezultat(a) {
	var one = document.getElementById("recent").value;
	var	res = one * a;
		res = res.toFixed(2);
		document.getElementById("output").innerHTML=res;
	}
</script>	
</head>
    <body>
	        
        <form action="#">
		<div id="currArea">
		 <label>Currency: </label>
            <input id="recent" type="text" style="width:45px;">
		 <label>Out: </label>
            <textarea id="output"></textarea>
		</div>
		</form>
			<div id="buttons">
			<input type="button" id="knopka1" value="Фунт" onclick='rezultat(15.6);'><br>
            <input type="button" id="knopka2" value="Рубль" onclick='rezultat(5.9);'><br>
            <input type="button" id="knopka3" value="Йена" onclick='rezultat(17);'><br>
            <input type="button" id="knopka4" value="Доллар" onclick='rezultat(8);'><br>
            <input type="button" id="knopka5" value="Тугрик" onclick='rezultat(23);'><br>
			</div>
			<br>
		
    </body>
</html>

#output{
	width:60px;
	height:20px;
}
#knopka1{
	
}
#currArea{
	width:240px;
	height:100px;
	margin:110px 0 0 10px;
}
#buttons{
	margin:10px 0 0 260px;
	position:absolute;
	top:0;
}
form{
	border:1px solid blue;
	border-radius:5px;
	width:250px;
	height:145px;
	position:relative;
}
#buttons input{
	width:90px;
}

laimas 02.10.2015 06:09

Если уж так писать, то надо помнить, что в функцию можно передавать аргументы, это означает, что можно обойтись одной функцией, передавая в нее значения 5.9, 6, 7.2.... Думаю даже показывать не надо как это будет выглядеть.

Lecseus 02.10.2015 09:05

Цитата:

Сообщение от laimas (Сообщение 390602)
Если уж так писать, то надо помнить, что в функцию можно передавать аргументы

Учел, благодарю..
вот только как в том же самом окне делать подсчет, не подскажете?:cray:

laimas 02.10.2015 10:53

О каком окне речь?

Lecseus 02.10.2015 11:20

#recent которое

laimas 02.10.2015 11:35

А разве это окно?

var one = document.getElementById("recent").value;

var one = document.getElementById("recent");
one.value = (one.value * a).toFixed(2);


document.getElementById("output").innerHTML=res; - такое кстати не годится, у этого поля есть свойство value, которое и нужно изменять.

Lecseus 02.10.2015 12:37

спасибо большое. а чтобы первый ввод запоминался, что нужно прописать? Ато оно умножается постоянно, а нужно, чтобы ввод recent оставался, но при нажатии на кнопки умножался на аргумент кнопки?

про textarea понял, спасибо.

laimas 02.10.2015 12:40

Цитата:

Сообщение от Lecseus
а чтобы первый ввод запоминался, что нужно прописать? Ато оно умножается постоянно, а нужно, чтобы ввод recent оставался, но при нажатии на кнопки умножался на аргумент кнопки?

Не осилил вопроса. Зачем же тогда изменять значение этого поля?

Lecseus 02.10.2015 12:43

ну да. например, если я ввел первое значение евро 5. то первая кнопка переводит это значение в фунты. теперь если я захочу нажать на кнопку другую, чтобы все то же значение 5, которое я ввел в самом начале, умножалось уже по тому, какое значение в другой кнопке.. это вообще возможно?

laimas 02.10.2015 13:04

Наверное нужно исходить из того, для чего это? Ввод в поле формы, так что должен получить сервер - 5 или 5 умноженное на N? Если первое, то результат умножения не стоит помещать в поле ввода, а выводить рядом как информацию. А запомнить ввод конечно можно, сохраняя его в переменной при каждом отпускании клавиши (цифровой).

Lecseus 02.10.2015 13:11

function rezultat(a) {
	var one = document.getElementById("recent");
	var two = document.getElementById("recent2");
	two.value = (one.value * a).toFixed(2);
	}

спасибо, реализовал таким образом.
вы не подскажете, а как сохранить в переменной значение при каждом отпускании клавиши?

laimas 02.10.2015 13:28

Ну во-первых нужно запретить ввод в поле не цифровых символов, и обрабатывать событие отпускание клавиши. Если нативный обработчик то так:

объявить переменную var n = 0;
добавить обработчик полю ввода - onkeyup="if(this.value = this.value.replace(/^0|\D/,''))n=this.value"
в функции проверять - if(n) { //выполнение функции, умножение

Вот только как знать, что ранее запомненное это первый ввод числа, а сейчас жмем клавиши, это уже ввод нового числа?

Lecseus 02.10.2015 13:54

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

laimas 02.10.2015 14:26

if(this.value = this.value.replace(/^0|\D/,''))n=this.value по русски:

если(значение поля ввода равное значению поля вода из которого удалены не цифры, а также 0, если он первый в числе, не пустое), то переменной n (которая должна быть объявлена в скрипте) присвоить текущее значение поля ввода

И ошибок в условии нет, так что не знаю чего там у вас с if.

Lecseus 02.10.2015 14:56

function rezultat(a) {
	var n = 0;
	if(n){ 
	var one = document.getElementById("recent");
	var two = document.getElementById("recent2");
	two.value = (one.value * a).toFixed(2);
	}
};

я имею ввиду здесь ошибка

Lecseus 02.10.2015 14:57

if(this.value = this.value.replace(/^0|\D/,''))n=this.value

этот обработчик я добавил к полю, если я правильно понял

laimas 02.10.2015 15:18

да


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