Dans mon fichier html, j'appelle une fonction javascript qui prend deux paramètres, où le deuxième paramètre est le nom d'un fichier qui doit être enregistré.

<a id="record_button" onclick="Recorder.record('audio', 'test.wav');" href="javascript:void(0);" title="Record"><img src="images/record.png" width="24" height="24" alt="Record"/></a>

Je voudrais créer une variable dynamique qui prend la valeur d'un champ de texte et la transmet comme deuxième paramètre (au lieu de test.wav), afin que l'utilisateur puisse déterminer le nom du fichier.

<label for="filename">Filename</label>
<input name="filename" type="text">

Merci.

3
Casper Slynge 31 oct. 2011 à 21:07

3 réponses

Meilleure réponse

C'est plus facile si vous donnez à votre entrée utilisateur un attribut id:

<input name="filename" id="filename" type="text">

Vous pouvez maintenant accéder à la valeur en Javascript avec:

document.getElementById('filename').value

Notez que si vous ne contrôlez pas la méthode Recorder.record(), vous devrez d'abord valider l'entrée utilisateur (au minimum, pour vérifier qu'il a entré quelque chose). Je recommanderais de déplacer cela vers une fonction distincte, par exemple:

function recordToFilename() {
    var input = document.getElementById('filename'),
        fileName = input.value;
    if (fileName) {
        Recorder.record('audio', fileName);
    } else {
        alert('Please enter a filename!');
        input.focus();
    }
}

Ensuite, utilisez simplement cette fonction:

<a id="record_button" onclick="recordToFilename();" href="javascript:void(0);" title="Record"><img src="images/record.png" width="24" height="24" alt="Record"/></a>

Exemple de travail: http://jsfiddle.net/nrabinowitz/GFpRy/

11
nrabinowitz 31 oct. 2011 à 18:06
<html>
<head>
  <script>
     function addData (fn, ln, em) {

       console.log(fn);
       console.log(ln);
       console.log(em);

     }
 </script>
</head>
<body>
    <input Type="text" name="FirstName" id="fn">
    <input Type="text" name="LastName" id="ln">
    <input Type="email" name="Email" id="em">
    <button onClick="addData(fn.value,ln.value,em.value)">click</button> 
</body>
</html>
1
Vijay Makwana 18 janv. 2018 à 09:23
Recorder.record('audio', document.yourformname.filename.value)

Assurez-vous d'avoir un attribut name="?" pour votre formulaire pour que cela fonctionne et remplacez yourformname par ce que vous mettez comme nom du formulaire. filename fait également référence à l'attribut name de l'entrée.

2
casraf 31 oct. 2011 à 17:13