Сравнивая 2 раза с jquery - PullRequest
0 голосов
/ 08 февраля 2011

Заранее спасибо за любую помощь ...

Я пытаюсь (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 секунд ...

Большое спасибо за любыепомогите вам, ребята, ответили на многие мои вопросы, и я не буду писать!

1 Ответ

0 голосов
/ 08 февраля 2011

Вам нужно 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 */
});
...