0

助けてくれてありがとう...

(1) フォームの開始時刻と終了時刻を生成し、(2) 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>

最初の部分は機能します (タイムスタンプを開始時刻と終了時刻の入力に入力します)。これまで数字を扱ったことがなく、2 番目の部分がわかりません。出てくる結果は「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); 
 });

個人的には、テキスト入力ではなく、値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 */
});
于 2011-02-08T05:01:52.067 に答える