Помощь с функциональностью
Хочу улучшить калькулятор. Ниже код:
<!DOCTYPE html> <html> <head> <style type="text/css"> button { text-align: center; } input { text-align: right; padding-left: 5px; padding-right: 5px; } button, input { width: 100%; height: 35px; } </style> <script type="text/javascript"> "use strict"; function typeSomething(id) { myText.value += id.innerHTML; } function clearSomething() { myText.value = ''; } function calculation() { myText.value = eval(myText.value); } function minusOne() { myText.value = myText.value.slice(0,-1); } </script> </head> <body> <table id="numbers"> <tr> <td colspan="4"><input id="myText" value=""/></td> </tr> <tr> <td colspan="3"><button id="ClearAll" onClick="clearSomething()">Clear All</button></td> <td><button id="Minus1" onClick="minusOne()"><-</button></td> </tr> <tr> <td><button id="Seven" onClick="typeSomething(this)">7</button></td> <td><button id="Eight" onClick="typeSomething(this)">8</button></td> <td><button id="Nine" onClick="typeSomething(this)">9</button></td> <td><button id="Devide" onClick="typeSomething(this)">/</button></td> </tr> <tr> <td><button id="Four" onClick="typeSomething(this)">4</button></td> <td><button id="Five" onClick="typeSomething(this)">5</button></td> <td><button id="Six" onClick="typeSomething(this)">6</button></td> <td><button id="Multiply" onClick="typeSomething(this)">*</button></td> </tr> <tr> <td><button id="One" onClick="typeSomething(this)">1</button></td> <td><button id="Two" onClick="typeSomething(this)">2</button></td> <td><button id="Three" onClick="typeSomething(this)">3</button></td> <td><button id="Minus" onClick="typeSomething(this)">-</button></td> </tr> <tr> <td><button id="dot" onClick="typeSomething(this)">.</button></td> <td><button id="Zero" onClick="typeSomething(this)">0</button></td> <td><button id="Equal" onClick="calculation()">=</button></td> <td><button id="Plus" onClick="typeSomething(this)">+</button></td> </tr> </table> </body> </html> 1) Как сделать, что бы функция minusOne() убирала не только последний символ, а любой?(например- число 1234)Моя функция будет убирать 4, где бы не стоял мигающий курсор. Надо сделать так, что бы она удаляла последнее число там, где как раз, таки курсор. 2) Как сделать ограничение по вводу input?(нашел maxlength, но он не пашет). 3) Критику в студию):) ПС: Моя почти первая программка, не включая это http://javascript.ru/forum/misc/5219...i-dannymi.html. Спс Рони, препод заценил) |
Цитата:
Цитата:
<input type="text" maxlength="1" /> Цитата:
|
Цитата:
Замени все "myText.value = xxx" на "setValue(xxx)": function setValue(value) { myText.value = value.substring(0, myText.maxLength); } |
danik.js,
спс, сейчас попробуем, что получиться. На счет onClick, где один раз так увидел, и запомнилось... |
danik.js,
function minusOne() { var input = document.getElementById('myText'); input.value = input.value.slice(input[0],input.selectionStart-1) + input.value.slice(input.selectionStart); } С этим вроде разобрался(спс за наводку), а function setValue(value) { myText.value = value.substring(0, myText.maxLength); } как мне быть с function typeSomething(id) { myText.value += id.innerHTML; } ? |
Цитата:
Цитата:
|
Цитата:
Ты плюсуй не всю innerHTML, а только ту ее часть, которая еще поместится в value. Хотя у тебя innerHTML для всех кнопок состоит из одного символа, можно и без substring обойтись. Без разницы в общем. |
danik.js,
в input[0] отсчет с 1 символа, а в slice передаю, что бы скопировать(ну я хз, как по другому сделать). myText.value += id.innerHTML -> myText.value = myText.value +id.innerHTML. |
Цитата:
<input value="bla bla" id="myText" /> <script> var input = document.getElementById('myText'); alert(input[0]); </script> Цитата:
|
danik.js,
https://developer.mozilla.org/ru/doc...ts/Array/slice Если begin опущен, slice() начинает работать с индекса 0. input.value = input.value.slice(0,input.selectionStart-1) + input.value.slice(input.selectionStart); Может пишу опять хрень, но так?:-E |
Часовой пояс GMT +3, время: 03:54. |