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, время: 06:16. |