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/> |
<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">
|
спасибо:dance:
только не пойму как:blink: :blink: буду благодарен за объяснение |
Событие onchange возникает при изменении значения элемента
onchange="chtom.value=this.value;" chtom - id элемента this - текущий элемент вызвавший событие value значение элемента получается при возникновении события onchange в элемеенте select, мы присваеваем его значение this.value другому элементу |
спасибо!!:write:
|
Всем доброго времени суток. Дабы не захламлять новыми темами напишу в этой, да простит меня автор сей темы. Пишу простенькую программку высчета валют. У меня такой вопрос, каким образом сделать так, чтобы при нажатии на кнопку результат появился не в текстареа, чтобы вообще 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;
}
|
Если уж так писать, то надо помнить, что в функцию можно передавать аргументы, это означает, что можно обойтись одной функцией, передавая в нее значения 5.9, 6, 7.2.... Думаю даже показывать не надо как это будет выглядеть.
|
Цитата:
вот только как в том же самом окне делать подсчет, не подскажете?:cray: |
О каком окне речь?
|
#recent которое
|
А разве это окно?
var one = document.getElementById("recent");
one.value = (one.value * a).toFixed(2);
document.getElementById("output").innerHTML=res; - такое кстати не годится, у этого поля есть свойство value, которое и нужно изменять. |
спасибо большое. а чтобы первый ввод запоминался, что нужно прописать? Ато оно умножается постоянно, а нужно, чтобы ввод recent оставался, но при нажатии на кнопки умножался на аргумент кнопки?
про textarea понял, спасибо. |
Цитата:
|
ну да. например, если я ввел первое значение евро 5. то первая кнопка переводит это значение в фунты. теперь если я захочу нажать на кнопку другую, чтобы все то же значение 5, которое я ввел в самом начале, умножалось уже по тому, какое значение в другой кнопке.. это вообще возможно?
|
Наверное нужно исходить из того, для чего это? Ввод в поле формы, так что должен получить сервер - 5 или 5 умноженное на N? Если первое, то результат умножения не стоит помещать в поле ввода, а выводить рядом как информацию. А запомнить ввод конечно можно, сохраняя его в переменной при каждом отпускании клавиши (цифровой).
|
function rezultat(a) {
var one = document.getElementById("recent");
var two = document.getElementById("recent2");
two.value = (one.value * a).toFixed(2);
}
спасибо, реализовал таким образом. вы не подскажете, а как сохранить в переменной значение при каждом отпускании клавиши? |
Ну во-первых нужно запретить ввод в поле не цифровых символов, и обрабатывать событие отпускание клавиши. Если нативный обработчик то так:
объявить переменную var n = 0; добавить обработчик полю ввода - onkeyup="if(this.value = this.value.replace(/^0|\D/,''))n=this.value" в функции проверять - if(n) { //выполнение функции, умножение Вот только как знать, что ранее запомненное это первый ввод числа, а сейчас жмем клавиши, это уже ввод нового числа? |
спасибо большое. буду заниматься оформлением, основное вы помогли.
попробовал добавить обработчик, все хорошо, но вот в if наверное допускаю ошибку. |
if(this.value = this.value.replace(/^0|\D/,''))n=this.value по русски:
если(значение поля ввода равное значению поля вода из которого удалены не цифры, а также 0, если он первый в числе, не пустое), то переменной n (которая должна быть объявлена в скрипте) присвоить текущее значение поля ввода И ошибок в условии нет, так что не знаю чего там у вас с if. |
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);
}
};
я имею ввиду здесь ошибка |
if(this.value = this.value.replace(/^0|\D/,''))n=this.value этот обработчик я добавил к полю, если я правильно понял |
да
|
| Часовой пояс GMT +3, время: 04:45. |