Я наткнулся на этот конкретный код, и, пока я нахожу его полностью функциональным, я пытаюсь выполнить несколько его частей, чтобы сделать его более удобным для пользователя. При этом я пытаюсь заставить некоторые значения в каждом текстовом поле.
Первый текстовый файл должен быть текстовым полем только для двоичного кода, только 0 и 1 разрешено. Второй и четвертый текстовые поля должны быть восьмеричными и шестнадцатеричными. Мой вопрос: как мне принудительно перезаписывать эти текстовые поля? Я пытаюсь сказать, что я ищу свойство или событие, которое стирает мой ввод, если оно не соответствует мне в текстовом поле.
Если я ввожу букву или число в двоичном формате текстовое поле, оно должно быть удалено. Если я набираю число больше 7 или букву в восьмеричном текстовом поле, удаляем.Hexadecimal = нет букв, кроме AF. А для десятичных знаков нет. Я знаю, как исключать эти значения, используя и если и другие номенклатуры, но я действительно теряю, когда дело доходит до его выполнения для каждого текстового поля.
Это код:
window.onload = id;function id(id) {
return document.getElementById(id);
}
function Convert(s, n)
{
if(parseInt(id(s).value, n))
{
if("bin" != s) { id("bin").value = parseInt(id(s).value, n).toString(2) }
if("oct" != s) { id("oct").value = parseInt(id(s).value, n).toString(8) }
if("dec" != s) { id("dec").value = parseInt(id(s).value, n).toString(10) }
if("hex" != s) { id("hex").value = parseInt(id(s).value, n).toString(16) }
} else
{
if("bin" != s) { id("bin").value = "" }
if("oct" != s) { id("oct").value = "" }
if("dec" != s) { id("dec").value = "" }
if("hex" != s) { id("hex").value = "" } }
}
Используйте событие
onkeyup
, чтобы прослушать изменения, сделанные пользователем в окне ввода.Вы можете проверить с выражением REGEX, что строка в вашем поле ввода содержит только s и
0
s. Если нет, то удалите последнюю введенную букву:Где
1
вернет/^[0,1]+$/.test(value)
, еслиtrue
содержит толькоvalue
и / или0
, иначе он вернет1
.