点击更改时没有任何事情发生

时间:2017-05-17 07:35:47

标签: javascript html laravel

当我在Q1,E2和T3中选择数据时,A4和Ave中的数据不会改变。我在所有输入和选择标记中都有onchange属性。

function calc(Q1id, E2id, T3id, distroid, A4id, Aveid, ) {
  var Q1 = parseInt(document.getElementById(Q1id).value);
  var E2 = parseInt(document.getElementById(E2id).value);
  var T3 = parseInt(document.getElementById(T3id).value);
  var distro = parseInt(document.getElementById(distroid).value);

  var result = parseFloat(distro) / 100;

  var ratingAve = document.getElementById(A4id).value = parseFloat(Math.round(Q1 + E2 + T3) / 3).toFixed(2);

  document.getElementById(Aveid).value = parseFloat(ratingAve * result).toFixed(2);

}
<form action="{{route('notes.update',$note->id)}}" method="POST">
  {{csrf_field()}} {{method_field('PUT')}}
  <div class="form-group">
    <label for="body">
					Q1
				</label>
    <select name="Q1" id="Q1" onchange="calc('Q1','E2','T3','distro','A4','Ave')" value="{{$note->Q1}}>
		             <option value=" 0 ">0</option>
		             <option value="1 ">1</option> 
		             <option value="2 ">2</option>  
		             <option value="3 ">3</option>  
		             <option value="4 ">4</option>  
		             <option value="5 ">5</option>   
		        </select>
                <label for="body ">
					E2
				</label>
				<select name="E2 " id="E2 " onchange="calc( 'Q1', 'E2', 'T3', 'distro', 'A4', 'Ave') " value="{{$note->E2}}>
    <option value="0">0</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    </select>
    <label for="body">
					T3
				</label>
    <select name="T3" id="T3" onchange="calc('Q1','E2','T3','distro','A4','Ave')" value="{{$note->T3}}>
		             <option value=" 0 ">0</option>
		             <option value="1 ">1</option> 
		             <option value="2 ">2</option>  
		             <option value="3 ">3</option>  
		             <option value="4 ">4</option>  
		             <option value="5 ">5</option>   
		        </select>
		 </div>
         <div class="form-group ">
		        <label for="body ">
		            A4
                </label>
	            <input class="form-control " type="text " name="A4 " placeholder="A4 " id="A4 " readonly onchange="calc( 'Q1', 'E2', 'T3', 'distro', 'A4', 'Ave') " value="{{$note->A4}}">
  </div>
  <div class="form-group">
    <label for="body">
		            Ave
                 </label>
    <input class="form-control" type="text" name="Ave" placeholder="Average" id="Ave" readonly onchange="calc('Q1','E2','T3','distro','A4','Ave')" value="{{$note->Ave}}">
  </div>
  <input class="btn btn-primary" type="submit" value="Done">
</form>

当我更改Q1,E2,T3中的值时,我想自动更改A4和Ave中的值。

1 个答案:

答案 0 :(得分:0)

  

未捕获的TypeError:无法读取属性&#39;值&#39;为null

...而且你没有一个标识为distro的元素(这是你传递给distroid变量的值)...或者甚至是一个id足够大的元素看起来像拼写错误。

您无法从不存在的元素中读取值。