0

在此先感谢您的帮助...

我正在尝试(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 秒左右......

非常感谢你们在我不必发帖的情况下回答了我这么多问题的任何帮助!

4

1 回答 1

0

您需要parseInt()将时间退回,否则它们只是字符串(由 返回.val())。

$("#totaltime").focus(function () {
    var begintime = parseInt($("#starttimeinput").val(), 10),
        endtime = parseInt($("#endtimeinput").val(), 10),
        totaltime = endtime - begintime;
    $("#totaltime").val(totaltime); 
 });

就个人而言,我宁愿自己存储begintimeendtime值,而不是在文本输入中(为什么用户需要查看它们呢?)。像这样:

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 */
});
于 2011-02-08T05:01:52.067 回答