未选择选项值时删除 div

remove div when option value unselected

这有什么问题吗?

            function admSelectCheck(nameSelect)
            {
                console.log(nameSelect);
                if(nameSelect){
                    admOptionValue = document.getElementById("admOption").value;
                    if(admOptionValue === nameSelect.value){
                        document.getElementById("admDivCheck").style.display = "block";
                    }
                    else{
                        document.getElementById("admDivCheck").style.display = "none";
                    }
                }
                else{
                    document.getElementById("admDivCheck").style.display = "none";
                }
            }

有两个选项,一个是FLIGHT,另一个是REGION

<div class="col-xs-12 col-sm-12 col-md-12">
            <div class="form-group">
                <strong>Type:</strong>
                {!! Form::select('type', \App\Destination::getEnum('type'),\App\Destination::getEnum('type'), array('onchange' => "admSelectCheck(this);", 'id' => "admOption")) !!}
            </div>
        </div>
        <div class="col-xs-12 col-sm-12 col-md-12">
            <div class="form-group" id="admDivCheck" style="display:none;">
                <strong>Flights:</strong>
                {!! Form::text('flights_data', null, array('class' => 'form-control')) !!}
            </div>
        </div>

当我 select FLIGHT 输入字段 Flights 出现但是当我 select REGION输入域 航班 仍在显示。 我希望它在 select REGION.

之后消失

请帮忙。

你需要更改这个,因为它总是 return true:

if(admOptionValue === nameSelect.value){

给这个:

if (admOptionValue === "FLIGHT") {

问题是 nameSelect.valuedocument.getElementById("admOption").value 相同,因为 nameSelect 变量实际上指向相同的元素,这是通过使用 [=16] 调用 javascript 函数来完成的=]参考。

样本:

function admSelectCheck(nameSelect) {
  if (nameSelect) {
    admOptionValue = document.getElementById("admOption").value;
    if (admOptionValue === "FLIGHT") {
      document.getElementById("admDivCheck").style.display = "block";
    } else {
      document.getElementById("admDivCheck").style.display = "none";
    }
  } else {
    document.getElementById("admDivCheck").style.display = "none";
  }
}
<div class="col-xs-12 col-sm-12 col-md-12">
  <div class="form-group">
    <strong>Type:</strong>
    <select id="admOption" onchange="admSelectCheck(this);">
      <option>REGION</option>
      <option>FLIGHT</option>
    </select>
  </div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
  <div class="form-group" id="admDivCheck" style="display:none;">
    <strong>Flights:</strong>
    <input type="text" class="form-control" value="flights data" />
  </div>
</div>

在您的情况下,如果选择了 FLIGHTS 选项,您必须将航班的条件添加到 if 语句以显示所需的文本字段。