0
How to erase a element in html tag without changing other content ?
I am developing a simple calculator using only HTML. When a wrong number is entered like 827 when the button is pressed it should erase 7 and should show 82. How could I do it ? Thanks in advance.
2 Answers
+ 12
number = number.replace(/.$/,"");
+ 6
Assuming the wrong number is entered by user in an <input> element, and that you'll want to delete last character entered, the safer way (as you cannot easily know if cursor is at end of text field) is:
<input type="text" id="myField" onchange="verif();">
<script>
var old_value, field; // global variables
window.onload = function() {
// initialize the global variables
field = document.getElementById('myField');
old_value = field.value;
};
function verif(self) {
/* verification code goes here and will be called each time the <input> value is modified */
if (!isValid(field.value) { // assuming a function returning true if valid value
field.value = old_value; // undo the last user change if invalid value
}
else { old_value = field.value; } // save last user updated value if valid
}
</script>
This is the simplest implementation... you can improve it and handle that stuff in a way where you can avoid global variables, even avoid the 'id' attribute as well as assign a function to event listener only dynamically (at run-time) to avoid surcharging your html code with event listener attributes ;)