我是JS的新手,我发现了一个脚本,当选择一个特定选项时(在这个例子中'其他'),在选择字段下面添加一个文本框,虽然我想要如果选择了另一个选项,则可以选择同一个框出现,以及#Friend'。我如何改变决定这一点的JS部分,从我的理解是这部分
function showfield(name){
if(name=='Other')
但我不知道执行此操作的正确语法。我有效地假设它像
if(name=='Other' or 'Friend')
anyhelp将受到高度赞赏,谢谢。
这是当前的代码。
<script type="text/javascript">
function showfield(name){
if(name=='Other')document.getElementById('div1').innerHTML='<input type="text" name="other" class="text-field" placeholder="Please state.." />';
else document.getElementById('div1').innerHTML='';
}
</script>
<form id="quote" class="quote-form">
<input name="" class="text-field" type="text" placeholder="Full Name" />
<input name="" class="text-field" type="text" placeholder="Contact Number" />
<input name="" class="text-field" type="text" placeholder="E-Mail Address" />
<select name="referral" class="select-field" onchange="showfield(this.options[this.selectedIndex].value)">
<option selected="selected">Where did you hear about us? (Please select..)</option>
<option value="Checkatrade">Check-a-Trade</option>
<option value="MyBuilder">MyBuilder</option>
<option value="Friend">Referral from a friend (Please state below)</option>
<option value="Other">Other (Please state below)</option>
</select>
<div id="div1"></div>
答案 0 :(得分:2)
像这样:
if(name=='Other' || name=='Friend') {
//do stuff
}
javascript中的||
运算符等同于您正在尝试的“或”。
在此处详细了解可用的运算符:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#Operator_precedence
答案 1 :(得分:0)
if(name=='Other' or 'Friend')
不正确。
你需要像这样第二次写变量名
if (name=='Other' || name=='Friend')
答案 2 :(得分:0)
我知道人们对switch语句有一种复杂的感觉,但在这种情况下,如果你需要合并其他特定于选项的更改,它会很好地适应并且更容易适应。
switch (name) {
case "Other":
case "Friend":
//show input field
break;
default:
//hide input field
break;
}
此外,不是每次都创建和销毁输入元素,而是使用display: block
和display: none