我在页面上有多个<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标记中的值仍然是日期。
答案 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"