2014-12-05 6 views
1

Я видел и читал this вопрос. Не нашел ответа.Проверить значение поля ввода независимо от типа

У меня есть код, который принимает шаблон html, и использует этот шаблон внутри формы. Этот шаблон будет содержать x количество полей ввода.

Есть ли способ проверить значение в этих полях ввода в общем? Любопытное, как это:

var inputFields = element.getElementsByTagName('input'); 
inputFields.forEach(function (element) { 
    var value = element.value; 
    // ... something 
}); 

Я знаю, что не будет работать, но вы получите идею.

Я думаю, что мне приходится писать специальные случаи для разных типов ввода, но я думал, что спрошу, есть ли у кого-нибудь опыт в этой проблеме.

Это сделано в чистом JavaScript, поэтому мне не нужен jQuery. Если у вас нет действительно опрятного способа сделать это в jQyery, по сравнению с простым JavaScript.

EDIT: Мне нужно проверить, был ли введен какой-либо ввод в поле, будь то файл или текст. Мне нужно удалить атрибут name для тех, у кого нет значения.

+0

Что вы имеете в виду, проверяя? –

+1

_ «Я думаю, что мне приходится писать специальные случаи для разных типов ввода» _ - Почему вы так думаете? Все элементы '' будут иметь значение (хотя это значение может быть пустой строкой). Когда вы говорите «проверьте ценность», вы имеете в виду, что у вас есть известное значение, например «123», и вы хотите знать, имеют ли какие-либо входы значение «123»? – nnnnnn

+0

Используйте JQuery. Множество примеров доступно через Интернет. Это кусок торта :) –

ответ

0

Используя следующее, я не вижу, что вам нужна специальная обработка для разных типов. Вы можете просто прочитать значение свойства:

<script> 
    var t = '<table>'; 
    var inputTypes = ('hidden text tel url email password datetime date month week' + 
        ' time number range color checkbox radio file submit image' + 
        ' reset button').split(' '); 
    var type; 

    for (var i=0, iLen=inputTypes.length; i<iLen; i++) { 
    type = inputTypes[i]; 
    value = type == 'number'? 10 : 'input type ' + type; 
    t += '<tr><td>' + type + '<td><input type="' + type + 
     '" name="' + type + 'Input" value="' + value + '">'; 
    } 
    document.write(t + '<\/table>'); 
</script> 

<button onclick="getValues(document.getElementsByTagName('input'))">Get values</button> 

<script> 
function getValues(inputs) { 
    var input; 
    for (var i=0, iLen=inputs.length; i<iLen; i++) { 
    input = inputs[i]; 
    console.log(input.name + ': ' + input.value); 
    } 
} 
</script> 

Возможно, вам захочется проверить флажки и радиоприемники. Для этого получение значения может быть:

if (input.type in {radio:'', checkbox:''}) { 

    if (input.checked) { 
    // get value 
    } 

} else { 
    // get value 
} 
Смежные вопросы