2016-06-10 149 views
0

播放音乐时出现问题。它不玩。我想通过点击按钮播放音乐。点击播放声音js

<script> 
    $(document).ready(function() { 
    $('.button').submit(function() { 
     var audio = document.getElementById('audioFile'); 
     audio.play(); 
    }); 
    }); 
</script> 
</head> 

<body> 
    <audio id="audioFile"> 
    <source src="font/sound.mp3" type="audio/mpeg"> 
    </audio> 
    <div class="inputMessage"> 

    <form method="POST" action="/index.php"> 
     <textarea class="chatMessage" name="text" placeholder="Текст сообщения"></textarea> 
     <br> 
     <input class="button" type="submit" name="enter" value="Отправить"> 
     <input type="reset" value="Очистить"> 
    </form> 
    </div> 
</body> 
+0

该解决方案尝试:HTTP://stackoverflow.com/a/18628124/2815635 – C2486

+0

错误消息是什么做你看?调试显示什么? –

+0

我需要从textarea发送文本,当我点击buttom时,我应该听到一个声音 – Catalina

回答

1

第一件事:.submit()方法存在于窗体上,而不是输入。您可以使用.click()方法。第二件事:当你点击你的按钮时,表单被发送并且页面重定向到/index.php。为了使播放声音成为可能,您必须保持在同一页面(请求仍然可以异步发送)。这是为了防止加载新页面的方法:

$('.button').click(function(ev) { // jQuery passes the event as a parameter 
    var audio = document.getElementById('audioFile'); 
    audio.play(); 
    ev.preventDefault(); // and we prevent the form from being sent 
}); 

看看演示:https://jsfiddle.net/s48jcrvc/1/

+0

它的作品,但现在我有另一个问题:当我点击按钮,歌曲开始播放,但当我再次点击按钮,它不会发送表单,直到歌曲播放。如何解决它?当我按下按钮时,歌曲应该从开头 – Catalina

+0

开始设置'audio.currentTime = 0;'在播放之前。如果有帮助,请接受我的回答。 –

+0

最后一个问题是如何在音乐完成后再次播放音乐? – Catalina