这怎么了?

            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";
                }
            }


有两个选项,一个名为“飞行”,另一个是“区域”

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


当我选择飞行时,输入字段会显示航班,但是当我选择地区时,输入字段
 航班仍在出现。
选择区域后,我希望它消失。

请帮忙。

最佳答案

您需要更改它,因为它总是返回true:

if(admOptionValue === nameSelect.value){


对此:

if (admOptionValue === "FLIGHT") {


问题在于nameSelect.valuedocument.getElementById("admOption").value相同,因为nameSelect变量实际上指向同一元素,而这是通过使用this引用调用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语句中,以显示必需的文本字段。

10-06 05:34
查看更多