2015-03-03 2 views
0

J'ai 4 champs qui peuvent être remplis par l'utilisateur final. Je voudrais envoyer le contenu de ces derniers dans un email mais je ne veux pas d'espaces vides dans l'email. Ce que je cherche est un moyen d'ignorer ces champs vides et de ne renvoyer que ceux qui ont de la valeur. J'ai ce morceau de code mais il ne retourne jamais la dernière valeur:Sauter le champ si vide

var Textbox = Browser.getValue("myTextBox"); 
var Field1 = Browser.getValue("myField1"); 
var Field2 = Browser.getValue("myField2"); 
var Field3 = Browser.getValue("myField3"); 
var Field4 = Browser.getValue("myField4)); 

    if (Field1 != ""){ 
    Browser.setValue(TextBox), (Field1 += "\n" + Textbox)); 
    } 

    if (Field2 != ""){ 
    Browser.setValue(Textbox), (Field2 += "\n" + Textbox)); 
    } 

    if (Field3 != ""){ 
    Browser.setValue(Textbox), (Field3 += "\n" + Textbox)); 
    } 

    if (Field4 != ""){ 
    Browser.setValue(Textbox), (Field4 += "\n" + Textbox)); 
    } 

Quelqu'un peut-il m'aider? J'ai fondamentalement besoin que la boîte de texte après chaque déclaration soit mise à jour et utilisée dans la suivante en utilisant juste Javascript.

Nous vous remercions à l'avance

+0

Que font * Browser.getValue * et * Browser.setValue *? – RobG

+0

Browser.getValue: récupère les valeurs de l'entrée dans les champs. Browser.setValue: définir les valeurs de la zone de texte vide Donc ici je veux prendre la valeur du champ et ce qui est courant dans la zone de texte et le définir comme nouvelle valeur pour la zone de texte –

Répondre

1

Vous semblez essayer de faire quelque chose comme ce qui suit. Il passe en revue tous les contrôles dans le formulaire et obtient toutes les valeurs qui ne sont pas la valeur initiale et les écrit dans la zone de texte sur de nouvelles lignes.

<script> 

// Collect all the non–default values in the form and write 
// on new lines to the text area 
function consolidateValues(form) { 

    // Get the textarea to write values to 
    var textArea = form.myTextBox; 

    // Get all controls in the form 
    var control, controls = form.elements; 

    // Variable to hold the consolidated value 
    var text = []; 

    // Collect all the values, skipping the first control 
    for (var i=1, iLen=controls.length; i<iLen; i++) { 
    control = controls[i]; 

    if (control.value != control.defaultValue) { 
     text.push(control.value); 
    } 
    } 
    // write the value to the text area 
    textArea.value = text.join('\n'); 

    // Stop form from submitting 
    return false; 
} 

</script> 

<form onsubmit="return consolidateValues(this)"> 
    <textarea name="myTextBox" size="100" rows="10"></textarea> 
    <br> 
    <input name="myField1"> 
    <br> 
    <input name="myField2"> 
    <br> 
    <input name="myField3"> 
    <br> 
    <input name="myField4"> 
    <br> 
    <input type="submit"> <input type="reset"> 
</form> 
+0

Merci RobG .. Je suis complètement nouveau à Javascript et avoir très peu de connaissance HTML. La fonction consoliderValues ​​(formulaire), que dois-je lui passer? –

+0

RobG, aimé votre idée d'utiliser un tableau et j'ai trouvé un morceau de code sur ce site pour nettoyer un tableau, donc l'ai utilisé à la place. Merci de votre aide à ce sujet –