无法从<input />获取价值

时间:2015-02-11 15:32:50

标签: javascript jquery html

我在页面上有多个<input class="form-control inputDate" type="text" value="12/31/1899 7:00 PM">。我还有以下javascript,

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和&#34;&#34;即使HTML标记中的值仍然是日期。

3 个答案:

答案 0 :(得分:2)

您没有访问那里的value属性。尝试

 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 '}'

答案 1 :(得分:1)

我绝对会建议使用“each”,因为noob在他更新的答案中有所描述。这是一个简单的示例,显示如何记录每个文本框值:

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

答案 2 :(得分:0)

试试这个:

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

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