Javascript语法查询

时间:2016-03-02 15:46:33

标签: javascript

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

3 个答案:

答案 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: blockdisplay: none

显示和隐藏它可能更清晰