2013-03-25 15 views
19

Edit:Here's a JSfiddleJS: Uncaught TypeError: obiekt nie jest funkcją (onclick)

Edit2: Błąd znajduje się na tej linii: <input type="button" value="totalbandwidthresult" onclick="javascript:totalbandwidth();">

starał się przycisk przeprowadzić obliczenia. Wymagane zmienne są poniżej, a także HTML gdzie

Dostaję błąd onclick: Uncaught TypeError: object is not a function index.html:71 onclick

Oto mój Javascript

function totalbandwidth() { 
    var fps=Number(document.calculator.fps.value); 
    var bitrate=Number(document.calculator.bitrate.value); 
    var numberofcameras = Number(document.calculator.numberofcameras.value); 
    var encoding = document.calculator.encoding.value; 
    if (encoding = "mjpeg") 
    { 
     storage = bitrate*fps; 
    } 
    else 
    { 
     storage = bitrate; 
    } 

    totalbandwidth = (numberofcameras * storage)/1000; 
    document.calculator.totalbandwidthresult.value = totalbandwidth; 
} 

HTML:

<form name="calculator" class="formtable"> 
<div class="formrow"><label for="rcname">RC Name</label> <input type="text" name="rcname"></div> 
<div class="formrow"><label for="fps">FPS</label> <input type="text" name="fps"> </div> 
<div class="formrow"><label for="bitrate">Bitrate</label> <input type="text" name="bitrate"> </div> 
<div class="formrow"><label for="numberofcameras">Number of Cameras</label> <input type="text" name="numberofcameras"> </div> 
<div class="formrow"><label for="encoding">Encoding</label> <select name="encoding" id="encodingoptions"> 
    <option value="h264">H.264</option> 
    <option value="mjpeg">MJPEG</option> 
    <option value="mpeg4">MPEG4</option> 
</select></div> 
Total Storage: <input type="text" name="totalstorage"> 
Total Bandwidth: <input type="text" name="totalbandwidth"> 
<input type="button" value="totalbandwidthresult" onclick="javascript:totalbandwidth();"> 

Zasadniczo - wydaje się, że coś może być nie tak z użyciem składni używanej w JS - ale nie jestem pewien.

+1

Proszę utworzyć łącze JSFiddle. –

+0

@coramba właśnie dodała jsFiddle – itamar

+0

@rid - przepraszam, linia 71 to przycisk onclick o wartości totalbandwidthresult – itamar

Odpowiedz

38

Proszę zmienić tylko nazwę funkcji; żadna inna zmiana nie jest wymagana

<script> 
    function totalbandwidthresult() { 
     alert("fdf"); 
     var fps = Number(document.calculator.fps.value); 
     var bitrate = Number(document.calculator.bitrate.value); 
     var numberofcameras = Number(document.calculator.numberofcameras.value); 
     var encoding = document.calculator.encoding.value; 
     if (encoding = "mjpeg") { 
      storage = bitrate * fps; 
     } else { 
      storage = bitrate; 
     } 

     totalbandwidth = (numberofcameras * storage)/1000; 
     alert(totalbandwidth); 
     document.calculator.totalbandwidthresult.value = totalbandwidth; 
    } 
</script> 

<form name="calculator" class="formtable"> 
    <div class="formrow"> 
     <label for="rcname">RC Name</label> 
     <input type="text" name="rcname"> 
    </div> 
    <div class="formrow"> 
     <label for="fps">FPS</label> 
     <input type="text" name="fps"> 
    </div> 
    <div class="formrow"> 
     <label for="bitrate">Bitrate</label> 
     <input type="text" name="bitrate"> 
    </div> 
    <div class="formrow"> 
     <label for="numberofcameras">Number of Cameras</label> 
     <input type="text" name="numberofcameras"> 
    </div> 
    <div class="formrow"> 
     <label for="encoding">Encoding</label> 
     <select name="encoding" id="encodingoptions"> 
      <option value="h264">H.264</option> 
      <option value="mjpeg">MJPEG</option> 
      <option value="mpeg4">MPEG4</option> 
     </select> 
    </div>Total Storage: 
    <input type="text" name="totalstorage">Total Bandwidth: 
    <input type="text" name="totalbandwidth"> 
    <input type="button" value="totalbandwidthresult" onclick="totalbandwidthresult();"> 
</form> 
+1

Nigdy ci nie podziękowałem - dzięki! – itamar

+11

dlaczego przez zmianę nazwy naprawiono problem? –

+6

@StevenHernandez - są w konflikcie. Po zmianie nazw konflikt został rozwiązany. – itamar

2

udało mi się ustalić to wykonując odpowiedź w tym wątku: https://stackoverflow.com/a/8968495/1543447

Zasadniczo przemianowany wszystkie wartości, nazwy funkcji i nazwy elementów na różne wartości, więc nie będą one konfliktu - i to działało !

Powiązane problemy