2016-06-10 8 views
0

Ich habe ein Problem mit dem Abspielen von Musik. Es spielt nicht. Ich möchte Musik abspielen, indem ich auf die Schaltfläche klicke.play sound by click 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

mit dieser Lösung versuchen: http: //stackoverflow.com/a/18628124/2815635 – C2486

+0

Welche Fehlermeldung siehst du? Was zeigt das Debugging? –

+0

Ich muss Text aus Textarea senden und wenn ich auf den Buttom klicke, sollte ich einen Sound hören – Catalina

Antwort

1

Erste Sache: .submit() Methode existiert auf Formen, nicht Eingaben. Sie können stattdessen die Methode .click() verwenden. Zweitens: Wenn Sie auf den Button klicken, wird das Formular gesendet und die Seite wird an /index.php weitergeleitet. Um das Abspielen von Sound zu ermöglichen, müssen Sie auf der gleichen Seite bleiben (die Anfrage kann weiterhin asynchron gesendet werden). Hier ist der Weg, um neue Seite zu verhindern Laden:

$('.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 
}); 

einen Blick auf Demo Nehmen: https://jsfiddle.net/s48jcrvc/1/

+0

es funktioniert, aber jetzt habe ich ein anderes Problem: Wenn ich auf den Button klicke, beginnt der Song zu spielen, aber wenn ich erneut auf den Button klicke, wird kein Formular gesendet, bis der Song abgespielt wird. Wie man es repariert? Wenn ich die Taste drücke, sollte der Song von Anfang an gestartet werden – Catalina

+0

Stellen Sie 'audio.currentTime = 0;' vor dem Abspielen ein. Und bitte akzeptiere meine Antwort, wenn es geholfen hat. –

+0

Und die letzte Frage ist, wie man wieder Musik spielt, wenn es fertig ist? – Catalina

Verwandte Themen