如果为空,则跳过字段

时间:2015-03-03 09:12:09

标签: javascript string skip

我有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时使用。

提前谢谢

1 个答案:

答案 0 :(得分:1)

您似乎正在尝试执行以下操作。它遍历表单中的所有控件,并获取所有非初始值的值,并将它们写入新行上的textarea。

<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>