2013-08-21 37 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> 
相关问题