2015-02-11 2 views
0

У меня есть несколько <input class="form-control inputDate" type="text" value="12/31/1899 7:00 PM"> на странице. У меня также есть следующие JavaScript,не может получить значение от <input>

var inputs = jQuery('.inputDate'); 
for (var i = 0; i < inputs.length; i++) { 
    console.log("test"); 
    jQuery(inputs[i]).val().split('/')[2]; 
    var input = jQuery(inputs[i]).val().split('/')[2]; 
    console.log("TEST" + input); 
    if (input.length > 4) { 
    input = input.split(" ")[0]; 
    } 
    if (input < '2015') { 
    jQuery(inputs[i]).val(""); 
    } 
} 

Проблема заключается в том, что var input не имеет значения. Я попытался открыть консоль и тестирование (против html сверху), и ничего не получает значение.

Я попытался,

jQuery(inputs[i]).val(); 
jQuery(inputs[0]).val(); 
document.getElementsByClassName("inputDate")[0].value; 

Но ничего возвращает значение. Я думаю, что часть проблемы заключается в том, что значение устанавливается в бэкэнд до 1899 вместо начала null.

Как я могу получить стоимость?

EDIT -------------------------------------

Я сделал больше тестирование и когда я сделаю

var test = inputs[0]; 
jQuery(test).val("123") 

HTML-разметка по-прежнему показывает дату. Но если я (от IntheWeeds)

jQuery(".inputDate").each(function() { 
    console.log($(this).val()); 
}); 

возвращает 123 и «», даже если значение в HTML-разметку еще дату.

+0

Если вы используете jQuery, почему бы не пройти весь путь и использовать метод 'each' для циклического ввода ваших входов? – ndugger

+0

Интересное примечание: jsFiddle не поддерживает должным образом значение по умолчанию для ввода текста. – Skerkles

+0

try: $ .each ($ (". InputDate"), function() { console.log ($ (this) .val()); }); –

ответ

2

Вы не имеет доступа к атрибуту значение там. попробуйте

var test = inputs[i]; 
jQuery(test).val(); 

или использовать .each метод:

var inputs = jQuery('.inputDate'); 
jQuery(inputs).each( 
    jQuery(this).val().split('/')[2]; 
    // rest of the code don't forget to get rid of ending '}' 
+0

Я запустил этот код, и он не сработал. Просто вернула нулевую строку. –

+0

попробуйте альтернативу –

+0

Пробовал, и это не сработало. Я сделал больше тестов и обновил OP, чтобы объяснить, что я вижу сейчас. Благодаря! –

0

Попробуйте это:

var inputs = $('.inputDate').val(); 

// Expect: input = "12/31/1899 7:00 PM" 
+0

К сожалению, это не работает. Он по-прежнему возвращает нулевую строку. –

+0

У вас есть несколько элементов с применяемым классом inputdate? –

+0

Да, на конкретной странице я работаю, у меня два. –

1

Я определенно рекомендовал бы использовать "каждый", так как нуб описал в своем обновленном ответе. Ниже приведен упрощенный пример, показывающий, как регистрировать каждое значение текстового поля:

$(".inputDate").each(function() { 
    console.log($(this).val()); 
});