2013-08-21 73 views
2

此按鈕顯示視頻媒體是否可以提交通過JavaScript獲得的時間表單?

<button name="test" onclick="alert(Math.floor(document.getElementById('video').currentTime) + 'secs elapsed!');">Show elapsed time</button> 

的電流經過該時間流逝的時間顯然在每一秒的變化。

是否有可能將此經過時間提交給表單?
我如何定製下面的代碼?

<form action="/comments" method="post" > 
    <input type="text" name="comment[body]" size="50" /> 
    <input type="hidden" name="comment[elapsed_time]" value="???????" /> 
    <button type="submit" >Submit!</button> 
</form> 

回答

3

你想使用jQuery來設置的值在表單提交

$("form").submit(function(event) { 
    var video = $("#video"), 
     time = Math.floor(video.currentTime) + 'secs elapsed!'); 
    $(this).find("input[name=comment\\[elapsed_time\\]").val(time); 
}); 

之前,如果你(能)添加id屬性輸入,它會更容易

<input type="hidden" name="comment[elapsed_time]" id="comment_elapsed_time"> 

然後你的jQuery變成了這個

$("form").submit(function(event) { 
    var video = $("#video"), 
     time = Math.floor(video.currentTime) + 'secs elapsed!'); 
    $("#comment_elapsed_time").val(time); 
}); 
+0

如果使用jQuery,你可以使用'var video = $(「#video」);' –

+0

你幾乎可以做到這一點,見下文。 – Paul

2

HTML變化:

<form action="/comments" method="post" > 
    <input type="text" name="comment[body]" size="50" /> 
    <input id="elapsed_time" type="hidden" name="comment[elapsed_time]" value="???????" /> 
    <button type="submit" >Submit!</button> 
</form> 

JS:

$('button').on('click', function(){ 
    $('#elapsed_time').val($('#video')[0].currentTime); 

    //now submit the form if you want tp 
    $('form').submit(); 
}); 
+0

如果您打算使用jQuery,爲什麼不重構爲'$('#video')。currentTime' – Paul

+0

使用[0]時存在一些小錯誤。糾正並將其添加到我的答案..感謝提示:) – AdityaSaxena

1

添加一些IDS到您的表單,使之容易操作,這是沒有必要的。

<form action="/comments" method="post" > 
    <input type="text" name="comment[body]" size="50" /> 
    <input id="elapsedTimeTextBox" type="hidden" name="comment[elapsed_time]" value="???????" /> 
    <button id="submitButton" type="submit" >Submit!</button> 
</form> 

鉤在這樣的提交按鈕的事件,如果你使用jQuery

$('#submitButton').click (function() { 
    $('#elapsedTimeTextBox').val(Math.floor(document.getElementById('video').currentTime); 
}); 
2

沒有使用jQuery,您可以將HTML改爲:

<form action="/comments" method="post" onsubmit="onFormSubmit()" > 
    <input type="text" name="comment[body]" size="50" /> 
    <input type="hidden" name="comment[elapsed_time]" /> 
    <button type="submit" >Submit!</button> 
</form> 

,並添加這個JavaScript您的<head>

<script> 
    function onFormSubmit() { 
     var element = document.getElementsByName("comment[elapsed_time]")[0]; 
     element.value = Math.floor(document.getElementById('video').currentTime); 
     return true; 
    } 
</script> 
相關問題