Div停止javascript功能

时间:2015-11-12 14:19:35

标签: javascript jquery html css

我正在构建一个javascript函数来在选择表单项时更新数据库表。这一切都很好。

JAVASCRPIT:

 function changeFunc(){
 var selectBox = document.getElementById("supervisor");
 var selectedValue = selectBox.options[selectBox.selectedIndex].value;
 if(selectedValue = 1){
     var jqxhr = $.ajax("<?php echo $web_root; ?      
  >/file/reminder/supervisor_reminder.php?super=1")
                  .done(function(){ alert("success, supervisor Helen has    
   been alerted."); })
                  .fail(function(){ alert("error"); });

    }

   }

HTML:

 <div id="supervisor">
 <form action="" method="">
    <label>Supervisor Alert</label>
        <select id="supervisor" onchange="changeFunc()">
            <option value=""></option>
            <option value="1">Helen</option>
            <option value="2">Nancy</option>
            <option value="3">Joyce</option>
            <option value="4">Bob</option>
            <option value="5">Herb</option>
        </select>    
  </form>
  </div>

当我用div标签包装表单时,javascript函数不起作用。我希望能够在表格更新后隐藏表格。所以我为此目的包裹了div。但这会阻止javascript工作,我只是想知道是否有人可以告诉我原因。或者如何使用css隐藏表格。

5 个答案:

答案 0 :(得分:4)

哟有两个具有相同ID的元素,因此将最外面的元素更改为

<div id="supervisorContainer">

答案 1 :(得分:2)

ID supervisor只能使用一次!

因此,例如,将<div id="supervisor">更新为<div id="supervisorBox">并使用#supervisorBox隐藏此框。

例如:

$("#supervisorBox").hide();

答案 2 :(得分:1)

因为你给了div并且选择了相同的id。 div需要不同的id。

答案 3 :(得分:1)

您不能拥有两个具有相同ID的HTML元素。将您的<div>select ID更改为不同。

答案 4 :(得分:1)

这里的问题是你使用与选择控件相同的ID。

ID必须是唯一的。否则将使用第一次出现,在你的情况下 - 是div容器。

因此,对于DIV容器,您的JS变量“selectBox”指向DIV,而不是select控件。

解决方案:将其中一个ID更改为另一个(唯一的)并使用JS代码中的select控件的ID。

    <div id="supervisor_div">
    <form action="" method="">
        <label>Supervisor Alert</label>
        <select id="supervisor" onchange="changeFunc()">
            <option value=""></option>
            <option value="1">Helen</option>
            <option value="2">Nancy</option>
            <option value="3">Joyce</option>
            <option value="4">Bob</option>
            <option value="5">Herb</option>
        </select>    
    </form>
</div>