Замена нажатой клавиши другой 
		
		
		
		Здравствуйте! 
	Не могу понять как мне сделать замену кода нажатой клавиши другой. То есть мне нужно по нажатию одной клавиши вводить другие символы. Например, в текстовое поле можно вводить определенные символы, а другие заменять нулем. Короче говоря, нажимается одна буква, а в поле попадает другая. У меня на текстовом поле событие 
function setc(e) {
var key = (typeof e.charCode == 'undefined' ? e.keyCode : e.charCode);
alert(key);
}
<input id="mytext" onkeypress="return setc(event);" type="text" value="">
Надо заменять на ходу, до попадания символа в поле. Я пробовал менять код клавиши так: e.charCode = 48; но пишет что нельзя менять setting a property that has only a getter Как мне сделать правильно, чтобы работало?  | 
	
		
 
<textarea id="txt"></textarea>
<script type="text/javascript">
	document.getElementById('txt').onkeypress = function (e) {
		e = e || window.event;
		if (e.keyCode == 97) {
			this.value += 'x';
			e.preventDefault ? e.preventDefault() : e.returnValue = false;
		}
	}
</script>
 | 
	
		
 exec, 
	У меня ваш код не работает. Работает так: 
document.getElementById('txt').onkeypress = function (e) {
		e = e || window.event;
		key = (typeof  e.charCode == 'undefined' ? e.keyCode : e.charCode);
		alert(key);
		if (key == 49) {
			this.value += 'x';
			e.preventDefault ? e.preventDefault() : e.returnValue = false;
		}
	}
Но если вводить символы не в начало строки, то они добавляются в конец.  | 
	
		
 Вы под каким браузером смотрите? 
	 | 
	
		
 exec, по-моему, в реализации скрипта и не предполагается, что новый символ будет вставлен в текущую позицию.  
	this.value += 'x';, или я не прав?  | 
	
		
 Да, точно. Нужно вычислять позицию курсора и вставлять туда. 
	 | 
	
		
 можно попробовать реагировать на два события (keyDown и KeyUp). В первом случае, ввыод еще не произошел, а во втором произошел. Сравнивая результаты, можно узнать позицию и заменить значение поля ввода на нужное, изменив символ на нужном месте... 
	 | 
	
		
 Файрфокс браузер. 
	Можно конечно сделать типа onkeyup="this.value = this.value.replace(/1/g, '0')" но тут видно какой символ ввели и только потом заменяется на нужный.  | 
| Часовой пояс GMT +3, время: 15:28. |