在javascript中使用if和elseif语句?

在javascript中使用if和elseif语句?,javascript,Javascript,我正试图找到一种在javascript中使用IF和elseif语句的方法(正确且简单的方法) 这就是我要做的 目前,我正在加入2个输入字段值,并在另一个输入栏中显示它们,如下所示: function FillIn() { document.getElementById('custom').value = 'Main Text:' + ' ' + document.getElementById('inputName').value + ', ' + '1st Text:' + ' ' +

我正试图找到一种在javascript中使用IF和elseif语句的方法(正确且简单的方法)

这就是我要做的

目前,我正在加入2个输入字段值,并在另一个输入栏中显示它们,如下所示:

function FillIn() {
  document.getElementById('custom').value = 

'Main Text:' + ' ' +  document.getElementById('inputName').value + ', ' + '1st Text:' + ' ' + document.getElementById('inputName101').value

    ; 
}
因此,基本上上述代码将
inputName
inputName101
的值放入
custom
输入字段。这个很好用

现在,我有两个单选按钮,我想根据选中的单选按钮将其值显示在自定义输入字段中

为此,我使用以下代码:

    function FillIn() {
      document.getElementById('custom').value = 

    'Main Text:' + ' ' +  document.getElementById('inputName').value + ', ' + '1st Text:' + ' ' + document.getElementById('inputName101').value

if(document.getElementById('male').checked) {

   + ', ' + 'Type:' + ' ' + document.getElementById('male').value

}else if(document.getElementById('female').checked) {

     + ', ' + 'Type:' + ' ' + document.getElementById('female').value

}

        ; 
    }
但是,我不确定我是否正确地执行了此操作,因为我根本无法获取
自定义
输入字段中单选按钮的值

有人能就此提出建议吗

编辑:

单选按钮的HTML:

<input id="male" type="radio" name="gender" value="Road Legal" onclick="showhidediv(this);">  

<input id="female" type="radio" checked="checked" name="gender" value="Show Plate" onclick="showhidediv(this);">

无法正常工作。。。不能像字符串一样将
if
语句中的字符串连接起来。你需要这样做

function FillIn() {
  document.getElementById('custom').value = 'Main Text:' + ' ' +  
    document.getElementById('inputName').value + ', ' + '1st Text:' + ' ' + 
    document.getElementById('inputName101').value;

  if (document.getElementById('male').checked) {
    document.getElementById('custom').value += ', ' + 'Type:' + ' ' +
      document.getElementById('male').value;
  }
  else if (document.getElementById('female').checked) {
    document.getElementById('custom').value += ', ' + 'Type:' + ' ' + 
      document.getElementById('female').value;
  }
}

事实上,这很可能在控制台上引发了一个错误,您应该检查这些错误,看看您的代码有什么问题。

实际上,您做错了,您不能直接将if/else条件与字符串连接起来,编写代码的更干净的方法是

function FillIn() {
    var str = 'Main Text: ';
    str += document.getElementById('inputName').value;
    str += ', 1st Text: ';
    str += document.getElementById('inputName101').value;

    if ( document.getElementById('male').checked ) {
        str += ', Type: ';
        str += document.getElementById('male').value;
    } else if ( document.getElementById('female').checked ) {
        str += ', Type: ';
        str += document.getElementById('female').value;
    }

    document.getElementById('custom').value = str;
}

在表达式中不能使用
if
语句。您碰巧以实际运行的方式编写了它,但是
if
语句中的表达式只是被计算和丢弃

可以在表达式中使用条件运算符:

function FillIn() {
  document.getElementById('custom').value = 
    'Main Text:' + ' ' +  document.getElementById('inputName').value + ', ' +
    '1st Text:' + ' ' + document.getElementById('inputName101').value +
    (document.getElementById('male').checked ?
      ', ' + 'Type:' + ' ' + document.getElementById('male').value :
      (document.getElementById('female').checked ?
        ', ' + 'Type:' + ' ' + document.getElementById('female').value :
        ''
      )
    ); 
}
对元素使用局部变量使代码更具可读性:

function FillIn() {
  var male = document.getElementById('male');
  var female = document.getElementById('female');
  document.getElementById('custom').value = 
    'Main Text:' + ' ' +  document.getElementById('inputName').value + ', ' +
    '1st Text:' + ' ' + document.getElementById('inputName101').value +
    (male.checked ?
      ', ' + 'Type:' + ' ' + male.value :
      (female.checked ?
        ', ' + 'Type:' + ' ' + female.value :
        ''
      )
    ); 
}

你能分享你单选按钮的HTML代码吗?你在哪里调用fillin?为什么女性的“展示牌”和男性的“道路”是合法的?为什么不指定菲林来点击并使用“类型”+这个值?同意,但OP显然缺乏充分理解其工作原理的知识。因此,让它变得优雅对他来说毫无用处。除此之外,我假设你投了反对票,你真的认为答案没有用吗?一件事是,它不优雅,但它确实起作用,它确实回答了OP的问题。优雅还是不优雅。。它回答了我的问题,非常感谢你的帮助。我不知道为什么我要写一个漂亮或优雅的代码,就像有些人所说的那样,无论哪种方式都是一样的!因为有了这种态度,你肯定会把自己画进一个角落,里面有一些不雅的代码,对某些人来说是行不通的reason@mplungjan,你刚才说的话站不住脚。为什么?好吧,因为你称之为“不雅”的代码工作得很好,而且解释性很强。。。如果它现在能工作,那么我不明白为什么它将来会突然停止工作。我重新格式化了它,这样它就不那么可怕了,并删除了我的否决票。我仍然非常不喜欢重复的代码,而不是使用var,也不喜欢三元代码,这不是火箭科学。让我们同意不同意,总有一天你会记下我的话
var-gender=document.getElementsByName(“性别”);str+=',类型:'+(性别[0]。已选中)?性别[0]。值:性别[1]。值
@mplungjan-事实上,括号中的三元可以是concatenated的,我一开始确实这样做了,但为了说明问题,我决定写得非常详细;你不必把事情搞得一团糟。