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 réponses
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/
<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>
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.
Questions connexes
De nouvelles questions
javascript
Pour des questions concernant la programmation dans ECMAScript (JavaScript / JS) et ses divers dialectes / implémentations (hors ActionScript). Veuillez inclure toutes les balises pertinentes dans votre question; par exemple, [node.js], [jquery], [json], etc.