2015-03-03 3 views
0

У меня есть 4 поля, которые могут быть заполнены конечным пользователем. Я хотел бы отправить их содержимое по электронной почте, но мне не нужны пробелы в письме. То, что я ищу, - это способ игнорировать это пустое поле и возвращать только те, которые имеют значение. У меня есть эта часть кода, но она только возвращает последнее значение:Пропустить поле, если оно пусто

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)); 
    } 

Может ли кто-нибудь мне помочь? Мне в основном нужно, чтобы текстовое поле после каждого утверждения обновлялось и использовалось в следующем, используя только Javascript.

Спасибо заранее

+0

Что делать * Browser.getValue * и * Browser.setValue * do? – RobG

+0

Browser.getValue: получает значения записи в полях. Browser.setValue: установить значения пустого текстового поля Итак, здесь я хочу взять значение поля и то, что является текущим в текстовом поле, и установить его как новое значение для текстового поля –

ответ

1

Вы, кажется, пытаются сделать что-то вроде следующего. Он обрабатывает все элементы управления в форме и получает все значения, которые не являются исходным значением, и записывает их в текстовое поле на новых строках.

<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

Спасибо RobG .. Я совершенно не знаком с Javascript и имеют очень очень ограниченное знание HTML. Функция консолидируетValues ​​(форму), что мне передать? –

+0

RobG, понравилась ваша идея использования массива, и я нашел прекрасную часть кода на этом сайте, чтобы очистить массив, поэтому использовал это вместо этого. Благодарим вас за помощь –

Смежные вопросы