Получить тип ввода из формы HTML

0

Я пытаюсь получить тип ввода 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". Можете ли вы помочь мне определить пользовательскую функцию, чтобы сделать это?

Спасибо за помощь ! никола

  • 0
    dreamscometrue.uk.com
  • 0
    input type="text" = текст. input type='checkbox' = логическое значение. Смотрите: jsfiddle.net/ZUJzF
Показать ещё 2 комментария
Теги:
forms

1 ответ

2
Лучший ответ

Свойство 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;
}

jsFiddle demo

  • 0
    Большое спасибо. Хорошего дня.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню