Я пытаюсь получить тип ввода HTML-формы в Javascript для дальнейшего использования. Я не говорю о атрибуте type для ввода 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 number | true boolean", а не "100 string | true string". Можете ли вы помочь мне определить пользовательскую функцию, чтобы сделать это?
Спасибо за помощь ! никола
Свойство value
входного элемента всегда сохраняется как строка, поэтому typeof
всегда возвращает "string". Вам нужно будет написать пользовательскую функцию, которая просматривает содержимое этой строки и соответственно определяет правильный тип. Что-то вроде этого может быть достаточно, хотя я, вероятно, пропустил один или два случая:
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;
}
input type="text"
= текст.input type='checkbox'
= логическое значение. Смотрите: jsfiddle.net/ZUJzF