Получить тип ввода из формы HTML
Я пытаюсь получить тип ввода моей HTML-формы в Javascript для дальнейшего использования. Я не говорю об атрибуте типа ввода HTML, но о типе переменной, которую вы получаете с помощью оператора typeof JS.
Я использую код ниже, чтобы проверить это:
<form oninput="test();" name="myform">
<input name="anumber" value="100">
<input name="aboolean" value="true">
</form>
<div id="message"></div>
<script type="text/javascript">
function test(){
anumber = document.myform.anumber.value;
aboolean = document.myform.aboolean.value;
document.getElementById("message").innerHTML = anumber + " " + typeof(anumber) + " | " + aboolean + " " + typeof(aboolean)
}
</script>
Во сне это отображает: "100 число | истинное логическое значение", а не "100 строка | истинное значение". Можете ли вы помочь мне определить пользовательскую функцию, чтобы сделать это?
Спасибо за помощь! никола
1 ответ
value
Свойство элемента ввода всегда хранится в виде строки, поэтому typeof
всегда собирается вернуть "строку". Вам нужно написать пользовательскую функцию, которая просматривает содержимое этой строки и соответственно определяет правильный тип. Что-то вроде этого может быть достаточно, хотя я, вероятно, пропустил один или два случая:
function getInputType(value) {
if(value === "")
return "";
else if(value === "true" || value === "false")
return "boolean";
else if(!Number.isNaN(Number(value)))
return "number";
else
return typeof value;
}