2013-03-25 38 views
19

Edit:Here's a JSfiddleJS: của router Lỗi Loại: đối tượng không phải là một chức năng (onclick)

Edit2: Lỗi này là trên dòng này: <input type="button" value="totalbandwidthresult" onclick="javascript:totalbandwidth();">

Đang cố gắng để có một nút thực hiện một tính toán. Các biến cần được dưới đây, cũng như HTML nơi

Tôi nhận được một lỗi onclick: Uncaught TypeError: object is not a function index.html:71 onclick

Đây là Javascript tôi

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();"> 

Về cơ bản - có vẻ như có thể có điều gì đó không ổn ith cú pháp tôi sử dụng trong JS - nhưng tôi không chắc chắn.

+1

Vui lòng tạo liên kết JSFiddle. –

+0

@coramba vừa thêm jsFiddle – itamar

+0

@rid - xin lỗi, dòng 71 là nút onclick có giá trị totalbandwidthresult – itamar

Trả lời

38

Chỉ thay đổi tên của hàm; không có thay đổi nào khác là bắt buộc

<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

Không bao giờ cảm ơn bạn vì điều này - vì vậy cảm ơn! – itamar

+11

tại sao bằng cách thay đổi tên đã khắc phục sự cố? –

+6

@StevenHernandez - họ xung đột. Một khi tên đã được thay đổi, xung đột đã được giải quyết. – itamar

2

tôi đã có thể hình dung nó ra bằng cách làm theo câu trả lời trong chủ đề này: https://stackoverflow.com/a/8968495/1543447

Về cơ bản, tôi đổi tên tất cả các giá trị, tên hàm, và tên phần tử với các giá trị khác nhau vì vậy họ sẽ không mâu thuẫn - và nó làm việc !

Các vấn đề liên quan