提前感谢您的帮助......
我正在尝试(1)为表单生成开始时间和结束时间,(2)找到两者之间的差异,以及(3)将差异添加到新输入中。
这是我到目前为止所拥有的:
<a href="#" id="starttime">Begin time</a>
<input id="starttimeinput" name="starttimeinput" type="text" value="">
<script>
$("#starttime").click(function () {
var begintime = event.timeStamp;
$("#starttimeinput").val(begintime);
});
</script>
<a href="#" id="endtime">end time</a>
<input id="endtimeinput" name="endtimeinput" type="text" value="">
<script>
$("#endtime").click(function () {
var endtime = event.timeStamp;
$("#endtimeinput").val(endtime);
});
</script>
<input id="totaltime" name="totaltime" type="text">
<script>
$("#totaltime").focus(function () {
var begintime = $("#starttimeinput").val();
var endtime = $("#endtimeinput").val();
var totaltime = endtime - begintime;
$("#totaltime").val(totaltime);
});
</script>
第一部分有效(将时间戳输入到开始时间和结束时间输入)。我以前从未使用过数字,也无法弄清楚第二部分。出现的结果是“NaN”。
这也许有助于了解点击链接的时间应该是30秒左右......
非常感谢你帮助我们回答了很多我的问题,而不必发帖!
答案 0 :(得分:0)
您需要parseInt()
时间退出,否则它们只是字符串(由.val()
返回)。
$("#totaltime").focus(function () {
var begintime = parseInt($("#starttimeinput").val(), 10),
endtime = parseInt($("#endtimeinput").val(), 10),
totaltime = endtime - begintime;
$("#totaltime").val(totaltime);
});
就个人而言,我很快就会自己存储begintime
和endtime
值,而不是文本输入(无论如何,用户为什么需要查看它们?)。像这样:
var begintime,
endtime;
$("#starttime").click(function (event) {
begintime = event.timeStamp;
//$("#starttimeinput").val(begintime);
});
$("#endtime").click(function (event) {
endtime = event.timeStamp;
//$("#endtimeinput").val(endtime);
});
$("#totaltime").focus(function () {
$("#totaltime").val(endtime - begintime);
});
另外,我建议将jQuery代码从内联<script>
标记移动到外部JS文件中。这使得更易于维护的标记和JS。只需将所有JS代码包装在文档就绪处理程序中:
$(document).ready(function () {
/* your code here */
});
或者更简洁地说,
$(function () {
/* your code here */
});