2017-01-28 167 views
0

我遇到的問題是在部門下拉字段中觸發更改,不知道我是否正確寫入。錯誤未捕獲TypeError:無法讀取null的屬性'樣式'。我試圖選擇一個像索賠一樣的部門,然後它會發射一個onchange以顯示另一個名爲workrequested的下拉菜單。我還沒有填補所有的部門,但如果我想首先在幾個部門進行測試,這不應該成爲問題。我認爲這與dvPassport1.style.display在隱藏和顯示div上顯示div時出現問題

<script> 
    function ShowHideDiv1() { 
     var Department = document.getElementById("Department"); 
     var divPassport1 = document.getElementById("divPassport1"); 
     divPassport1.style.display = Department.value == "Claims" || Department.value == "Flat 1"|| Department.value == "Flat 2"|| Department.value == "Hanging Bulk" || Department.value == "Hanging Store North" || Department.value == "Hanging Store South" || Department.value == "Inventory Integrity" || Department.value == "Rack Shoes" || Department.value == "Fine Jewelry"? "block" : "none"; 
    } 
    function ShowHideDiv2() { 
     var Department = document.getElementById("Department"); 
     var divPassport2 = document.getElementById("divPassport2"); 
     divPassport2.style.display = Department.value == "JackPotLane" ? "block" : "none"; 
    } 

    </script> 
<?=form_open('insert/create/', array(
'class' => 'form-horizontal', 
'role' => 'form', 

)); ?> 
<div class="row"> 
<div class="container"> 
<h3>Validation Form</h3> 

<br> 
    <div class="col-sm-6"> 


    <div class="form-group"> 
    <?php echo form_label('ZID', 'ZID', $attributes=array());?> 
    <?php echo form_input('ZID', set_value('ZID'), $attributes=array("class" => "form-control", "id"=>"ZID"));?> 
    <!--show error message --> 
     <div class="error"><?php echo form_error('ZID'); ?></div> 
    </div> 



    <div class="form-group"> 
    <?php echo form_label('Employee Name', 'EmpName', $attributes=array());?> 
    <?php echo form_input('EmpName', set_value('EmpName'), $attributes=array("class" => "form-control", "id"=>"EmpName"));?> 
     <!--show error message --> 
    <div class="error"><?php echo form_error('EmpName'); ?></div> 
    </div> 





    <div class="form-group"> 
    <?php echo form_label('Department', 'Department', $attributes=array());?> 
    <?php 
    $options = array(
     ""=>"Choose Department", 
     "Claims" => "Claims", 
     "Flat 1"=>"Flat 1"); 
    ?> 
    <?php echo form_dropdown('Department', $options,set_value('Department'),array("class" => "form-control", "id"=>"Department", "onchange" => "ShowHideDiv1();ShowHideDiv2();"));?> 

    <!--show error message --> 
    <div class="error"><?php echo form_error('Department'); ?></div> 
    </div> 




    <div class="form-group" id="divpassport1" style="display: none" > 
    <?php echo form_label('WorkRequested', 'WorkRequested', $attributes=array());?> 
    <?php 
    $options = array(
     ""=>"Choose WorkRequested", 
     "Cases Not Received" => "Cases Not Received", 
     "Master Pack"=>"Master Pack"); 
    ?> 
    <?php echo form_dropdown('WorkRequested', $options,set_value('WorkRequested'),array("class" => "form-control", "id"=>"WorkRequested"));?> 
     <!--show error message --> 
    <div class="error"><?php echo form_error('WorkRequested'); ?></div> 
    </div> 

    <div class="form-group" id="divpassport2" style="display: none" "> 
    <?php echo form_label('WorkRequested', 'WorkRequested', $attributes=array());?> 
    <?php 
    $options = array(
     ""=>"Choose jackpot WorkRequested", 
     "FYI" => "FYI", 
     "Request"=>"Request"); 
    ?> 
    <?php echo form_dropdown('WorkRequested', $options,set_value('WorkRequested'),array("class" => "form-control", "id"=>"WorkRequested"));?> 
     <!--show error message --> 
    <div class="error"><?php echo form_error('WorkRequested'); ?></div> 
    </div> 




<div class="form-group"> 
    <?php echo form_label('Description','ReqDescription', $attributes=array());?> 
<?php echo form_textarea('ReqDescription',set_value('ReqDescription'),array("class"=>"form-control textarea","id"=>"ReqDescription"));?> 
    <!--show error ReqDescription --> 
<div class="error"><?php echo form_error('ReqDescription'); ?></div> 
</div> 
<input type="hidden" name="DATEREQUESTED" value="<?php echo date("Y/m/d h:i:sa");?>" value="<?=set_value('DATEREQUESTED')?> " value="<?=set_value('DATEREQUESTED')?>"> 


<input type="hidden" class="form-control" id="Status" name="Status" value="Received" placeholder="Status" value="<?=set_value('Status')?>"> 
<div class="form-group"> 
<?php echo form_submit('submit', 'Submit', array("class"=>"btn-primary btn", "id"=>"submit"));?> 
</div> 


    <?php echo form_close()?> 

回答

0

至於我可以看到,你想要得到divPassport1(d vPassport1)和divPassport2,而不是dvPassport1dvPassport2

更改var dvPassport1 = document.getElementById("dvPassport1");var dvPassport1 = document.getElementById("divPassport1");和第二個分別或更正ID。

編輯 我想你訪問元素太早,你的DOM尚未加載。將您的js代碼頁結束時關閉body之前,將其套以下的方式來等待窗口onload事件:

<script> 
(function() { 
    // your javascript code here 
    // the DOM will be available here 
})(); 
</script> 
+0

我改成了正確的ID,但仍然得到作風錯誤 – Donny

+0

我更新的形式上面,也許你可以檢查,看看它是否正確 – Donny

+0

好吧,我將不得不嘗試週一不工作謝謝 – Donny