【问题标题】:remove div when option value unselected未选择选项值时删除 div
【发布时间】:2020-05-11 16:00:33
【问题描述】:

这有什么问题?

            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>

当我选择 FLIGHT 时会出现输入字段 Flights 但是当我选择 REGION 时会出现输入字段 航班仍在出现。 我希望它在我选择 REGION 后消失。

请帮忙。

【问题讨论】:

    标签: javascript laravel html-select ajaxform laravelcollective


    【解决方案1】:

    你需要改变这个,因为它总是返回 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 语句以显示所需的文本字段。

    【讨论】:

    • 非常感谢,你是我所需要的 :),不是以-1 投票给我的人,再次感谢你,它运作良好 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 2016-09-13
    • 2015-03-22
    • 1970-01-01
    相关资源
    最近更新 更多