在javascript中使用if和elseif语句?
我正试图找到一种在javascript中使用IF和elseif语句的方法(正确且简单的方法) 这就是我要做的 目前,我正在加入2个输入字段值,并在另一个输入栏中显示它们,如下所示:在javascript中使用if和elseif语句?,javascript,Javascript,我正试图找到一种在javascript中使用IF和elseif语句的方法(正确且简单的方法) 这就是我要做的 目前,我正在加入2个输入字段值,并在另一个输入栏中显示它们,如下所示: function FillIn() { document.getElementById('custom').value = 'Main Text:' + ' ' + document.getElementById('inputName').value + ', ' + '1st Text:' + ' ' +
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的,我一开始确实这样做了,但为了说明问题,我决定写得非常详细;你不必把事情搞得一团糟。