在我的网络应用程序中,我有一个video.js-player,它集成在一个带有复选框的表单中,用于将上传的视频标记为已删除。我的问题是玩家的所有按钮都提交了表单。我该如何防止这种行为?
Extract(jsfiddle:http://jsfiddle.net/sLsvLv0q/11/):
$(document).ready(function()
{
$("#f_produkt").submit(function(e)
{
e.preventDefault();
alert("submit");
});
});
<form id="f_produkt" action="" method="post">
Delete? <input id="f_delete" type="checkbox" value="1" name="delete">
<video id="my_video_1" class="video-js vjs-default-skin vjs-16-9" controls preload="auto" width="640" height="268" data-setup='{}'>
<source src="http://vjs.zencdn.net/v/oceans.mp4" type='video/mp4'>
<source src="http://vjs.zencdn.net/v/oceans.webm" type='video/webm'>
</video>
<input id="f_submit" type="submit" value="Only this button to submit the form">
</form>
编辑:video.js解决了问题https://github.com/videojs/video.js/pull/2471
答案 0 :(得分:1)
你可以检查点击了哪个按钮,这样你就可以触发你的行动了
$(document).ready(function()
{
$("#f_produkt").submit(function(e)
{
var check = $("#f_submit").data('clicked');
if(check == 'Y'){
$("#f_submit").data('clicked','N');
alert("submit");
e.preventDefault();
} else {
e.preventDefault();
}
});
$("#f_submit").on('click',function(){
$(this).attr('data-clicked','Y');
});
});
希望这是您正在寻找的解决方案,只需弄清楚您希望采取何种行动......
答案 1 :(得分:0)
如果您使用的是IE,则需要event.returnValue
,请尝试以下操作:
$("#f_produkt").submit(function(e)
{
e.preventDefault ? e.preventDefault() : event.returnValue = false;
alert("submit");
});