我试图创建一个datetime-local输入,该输入将提交到一个函数中,以后将其转换为不同的类型。我一直试图检查我正在使用的功能是否通过将其投入警报来接收用户输入,但每次我收到警报时,都不会显示信息,并使用" [object HTMLInputElement] "在它的位置。显然,如果我的bugtest甚至没有正常工作,我一定是做错了什么
下面是我的表格和我的剧本。
<form>
Start Time:
<input type="datetime-local" id="start">
End Time:
<input type="datetime-local" id="end">
<input type="submit" value="Send" onclick="convert()">
</form>
<script>
function convert() {
var sd = new Date(); //start date
var sds = new String();
var ed = new Date(); //end date
var eds = new String();
var sd = document.getElementById("start");
alert(sd);
var sds = document.getElementById("end");
alert(sds);
}
</script>
有什么显而易见的东西吗?
答案 0 :(得分:4)
只需致电getElementById
即可返回 HTMLInputElement 对象。要获得其价值,您需要致电.value
var sd = document.getElementById("start").value;
和
var sds = document.getElementById("end").value;
您还将变量sd
声明了两次。只需要一次。这增加了代码库,使事情变得更少干。此外,而不是像这样初始化一个新的字符串
var eds = new String();
改为
var eds = "";
我更新并改进了您的代码。
var startValue = document.getElementById("start-value");
var endValue = document.getElementById("end-value");
function convert() {
var sd = new Date(); // start date
var ed = new Date(); // end date
var eds = new String();
var sd = document.getElementById("start").value;
startValue.innerHTML = sd;
var sds = document.getElementById("end").value;
endValue.innerHTML = sds;
}
&#13;
<form>
Start Time:
<input type="datetime-local" id="start">
End Time:
<input type="datetime-local" id="end">
<input type="submit" value="Send" onclick="convert()">
</form>
<p id="start-value"></p>
<p id="end-value"></p>
&#13;
答案 1 :(得分:1)
你已经两次宣布同一个变量,var sd。有一次你为它分配了一个Date()函数,第二次你为它分配了一个document.getElementByID()。并且对于gental人说的是什么,innerHtml需要包括在内以获得该领域的价值。
答案 2 :(得分:0)
首先,点击事件不是您想要实现的目标的正确选择。其次,你必须将事件绑定在inpits而不是表单上。您可能想要使用on change事件。我也强烈建议使用socument状态和wleventbindings。