2012-10-10 19 views
17

दोस्तों मैं थोड़ी सी समस्या के लिए आया था। सब कुछ ठीक पहले काम कर रहा था। लेकिन मैं सुधार नहीं कर सकता कि यह मुझे ऐसी त्रुटि क्यों देना शुरू कर देता है।जावास्क्रिप्ट टाइपरर: xxx एक फ़ंक्शन नहीं है

function newSupplier() { 
    $('div#AddSupplier div.msg').html('').hide(); 
    $('div#AddSupplier div.loader').show(); 
    registerSupplier($('div#AddSupplier table.frm :input').serialize()).done(function (a) { 
     if (a.Msg) { 
      $('div#AddSupplier div.msg').html(a.Msg).removeClass('success').addClass('error').fadeIn(); 
     } 
     else if (a.supid) { 
      $('div#AddSupplier div.msg').html('Supplier <span class="l2">' + a.supid + '</span> Registered').removeClass('error').addClass('success').fadeIn(); 
      $('div#AddSupplier table.frm :input').val(''); 
     } 
    }).always(function() { 
     $('div#AddSupplier div.loader').hide(); 
    }).fail(function() { 
     $('div#AddSupplier div.msg').html(errMsgNet).removeClass('success').addClass('error').fadeIn(); 
    }); 
} 

यहाँ और registerSupplier() समारोह का कोड है:: यहाँ

function registerSupplier(dataToPost) { 
    return $.ajax({ 
     type: "POST", 
     url: jsonpath + 'Json.ashx?method=RegisterSupplier', 
     data: dataToPost 
    }); 
} 

और पूरा जे एस फ़ाइल है:
यहाँ मेरी जावास्क्रिप्ट कोड है http://preview.myignou.com/Docs/jScript.js

संबंधित एचटीएमएल

<div id="ViewOrder"> 
    <h2>View Order Details</h2> 
    <div class="tab-content"> 
     <table class="frm"> 
     <tr> 
      <td><label>Enter Order Number</label></td> 
      <td><input type="text" name="orderNumber" onkeyup="$('#ViewOrder>div>div').fadeOut();" /><input type="button" class="but1 m-side" value="OK" onclick="LoadMaterialOrder();"/></td> 
      <td> 
       <div class="process">&nbsp;</div> 
      </td> 
     </tr> 
     </table> 
     <div> 
     <div class="border shadow m-tb"> 
      <h2 class="header">Order Details</h2> 
      <div id="orderDetails" class="tab-content"> 
       <table class="frm"> 
        <tr> 
        <td><label>Supplier</label></td> 
        <td><select id="newSupplier" name="supplier"></select></td> 
        <td class="r-align"><input type="button" value="Load Suppliers" onclick="loadSuppliers('#newSupplier')" /></td> 
        </tr> 
        <tr> 
        <td><label>Order Date</label></td> 
        <td><input type="text" name="orderDate" /></td> 
        </tr> 
        <tr> 
        <td><label>Delivery Date</label></td> 
        <td><input type="text" name="deliveryDate" /></td> 
        </tr> 
        <tr> 
        <td><label>Cancel Date</label></td> 
        <td><input type="text" name="cancelDate" /></td> 
        </tr> 
        <tr> 
        <td><label>Payment Due Mark</label></td> 
        <td><input id="payDue2" type="checkbox" name="isPayDue" /><label for="payDue2">Yes</label></td> 
        </tr> 
        <tr> 
        <td><label>Remember Mark</label></td> 
        <td><input id="remark2" type="checkbox" name="isMarked" /><label for="remark2">Yes</label></td> 
        </tr> 
       </table> 
      </div> 
      <table class="footer-buttons"> 
       <tr> 
        <td> 
        <div class="msg"></div> 
        <div class="loader" style="display:none;"><img alt="loader" src="CSS/Images/loader.gif" /></div> 
        </td> 
        <td><input type="button" class="but1 sub-but" value="Save Changes" onclick=""/><input type="reset" value="Reset" /></td> 
       </tr> 
      </table> 
     </div> 
     <br /> 
     <div class="border shadow m-tb"> 
      <h2 class="header">Payment Records</h2> 
      <div id="paymentHistory" class="tab-content"> 
       <table class="tab pay-his"> 
        <tr class="th"> 
        <td></td> 
        <td>Trans#</td> 
        <td>Date</td> 
        <td>Comment</td> 
        <td>Type</td> 
        <td>Credit</td> 
        <td>Debit</td> 
        <td>Balance</td> 
        <td>Associated Agent</td> 
        </tr> 
        <tr> 
        <td><input type="radio" name="paySelect" /></td> 
        <td>101-1</td> 
        <td>12-12-12</td> 
        <td>Abclk lask aa</td> 
        <td>Credit</td> 
        <td>500</td> 
        <td></td> 
        <td>500.00</td> 
        <td>Shashwat Tripathi</td> 
        </tr> 
        <tr> 
        <td><input type="radio" name="paySelect" /></td> 
        <td>101-2</td> 
        <td>12-12-12</td> 
        <td>Shashwat Tripathi</td> 
        <td>Debit</td> 
        <td></td> 
        <td>500</td> 
        <td>500.00</td> 
        <td>Sudhir</td> 
        </tr> 
        <tr> 
        <td><input type="radio" name="paySelect" /></td> 
        <td>101-3</td> 
        <td>12-12-12</td> 
        <td>Shashwat Tripathi</td> 
        <td>Credit</td> 
        <td>500</td> 
        <td></td> 
        <td>500.00</td> 
        <td>Sudhir Gaur</td> 
        </tr> 
       </table> 
       <br /> 
       <input type="button" class="but2" value="Edit" 
        onclick="$('#ViewOrder #payEdit').slideDown(function() { $('html, body').animate({ scrollTop: $('#paymentHistory').offset().top-20 }, 500); });" /><input type="button" class="but2 m-side" value="Delete" /> 
       <div id="payEdit" class="border m-tb shadow" style="display:none;"> 
        <h2 class="header">Edit Payment</h2> 
        <div class="tab-content"> 
        <table class="frm"> 
         <tr> 
          <td><label>Date</label></td> 
          <td><input type="text" name="date" placeholder="dd-mm-yy"/></td> 
         </tr> 
         <tr> 
          <td><label>Type</label></td> 
          <td> 
           <select name="type"> 
           <option>Credit</option> 
           <option>Debit</option> 
           <option>Expense</option> 
           </select> 
          </td> 
         </tr> 
         <tr> 
          <td><label>Amount</label></td> 
          <td><input type="text" name="amount" placeholder="धनराशी..." /></td> 
         </tr> 
         <tr> 
          <td><label>Comment</label></td> 
          <td><textarea name="comment" rows="4" cols="10"></textarea></td> 
         </tr> 
         <tr> 
          <td></td> 
          <td><input type="button" class="but1" value="Save Changes" /><input type="button" class="but2 m-side" onclick="$('#payEdit').slideUp();" value="Cancel" /></td> 
         </tr> 
        </table> 
        </div> 
       </div> 
       <br /> 
       <h2>Register New Payment</h2> 
       <hr /> 
       <div id="newMatOrderPayment"> 
        <table class="frm"> 
        <tr> 
         <td><label>Date</label></td> 
         <td><input type="text" name="date" placeholder="dd-mm-yy" /></td> 
        </tr> 
        <tr> 
         <td><label>Type</label></td> 
         <td> 
          <select name="type"> 
           <option>Credit</option> 
           <option>Debit</option> 
           <option>Expense</option> 
          </select> 
         </td> 
        </tr> 
        <tr> 
         <td><label>Amount</label></td> 
         <td><input type="text" name="amount" placeholder="धनराशी..." /></td> 
        </tr> 
        <tr> 
         <td><label>Comment</label></td> 
         <td><textarea name="comment" rows="4" cols="10"></textarea></td> 
        </tr> 
        </table> 
       </div> 
      </div> 
      <table class="footer-buttons"> 
       <tr> 
        <td> 
        <div class="msg"></div> 
        <div class="loader" style="display:none;"><img alt="loader" src="CSS/Images/loader.gif" /></div> 
        </td> 
        <td><input type="button" class="but1" value="Register Payment" onclick=""/><input type="button" class="but2" onclick="$('#NewMatOrderPayment :text').val('');" value="Reset" /></td> 
       </tr> 
      </table> 
     </div> 
     </div> 
    </div> 
</div> 
<div id="AddSupplier"> 
    <h2>Register New Suppiler</h2> 
    <div class="tab-content"> 
     <table class="frm"> 
     <tr> 
      <td><label>Supplier ID</label></td> 
      <td><input type="text" name="supId" /></td> 
     </tr> 
     <tr> 
      <td><label>Contact Number</label></td> 
      <td><input type="text" name="contact" /></td> 
     </tr> 
     <tr> 
      <td><label>Address</label></td> 
      <td><textarea name="address" cols="10" rows="4"></textarea></td> 
     </tr> 
     <tr> 
      <td><label>Email address</label></td> 
      <td><input type="text" name="email" /></td> 
     </tr> 
     <tr> 
      <td><label>City</label></td> 
      <td><input type="text" name="city" /></td> 
     </tr> 
     </table> 
    </div> 
    <table class="footer-buttons"> 
     <tr> 
     <td> 
      <div class="msg"></div> 
      <div class="loader" style="display:none;"><img alt="loader" src="CSS/Images/loader.gif" /></div> 
     </td> 
     <td><input type="button" class="but1 sub-but" value="Register" onclick="newSupplier();"/><input type="reset" value="रीसेट" /></td> 
     </tr> 
    </table> 
</div> 

यदि मैं ca हूँ इस समारोह को सीधे एफएफ और फायरबग कंसोल से लाना, फिर इसे बुलाया जा रहा है।
लेकिन बटन पर मैं त्रुटि TypeError: newSupplier is not a function

हो रही है कृपया मुझे पूछने यू अतिरिक्त कोड की जरूरत है पर क्लिक करें।

+0

स्पष्ट से शुरू करना: क्या आप निश्चित हैं कि आपने पृष्ठ पर स्क्रिप्ट जोड़ दी है, और क्या आप निश्चित हैं कि यह 'newSupplier();' कॉल करने का प्रयास करने से पहले लोड हो गया है? शायद यह आपका एचटीएमएल पेज भी पोस्ट करें, अगर यह बहुत लंबा नहीं है। – JcFx

+1

क्या आप एचटीएमएल कोड प्रदान कर सकते हैं, शायद आपके पास id * newSupplier * वाला तत्व है? –

+0

हां @ जेसीएफएक्स। मुझे इसके बारे में बहुत यकीन है। Coz मैंने सभी javscript को एक फ़ाइल में रखा है। अन्य सभी कार्यों को बुलाया जा रहा है। फ़ंक्शन 'newSupplier()' को एफएफ और फायरबग कंसोल से बुलाया जा सकता है और फ़ायरबग के इंटेलिजेंस में भी दिखाई देता है। – shashwat

उत्तर

22

आपके एचटीएमएल कोड में पहला चयन टैग आईडी नया सुपरप्लियर फ़ंक्शन के नाम की तरह है। कुछ ब्राउज़र जेएस कोड में आईडी निर्दिष्ट करके नोड तत्वों तक पहुंच सकते हैं और फिर परिभाषित फ़ंक्शन को DOM में तत्व द्वारा ओवरराइड किया जाता है।

आपको फ़ंक्शन नाम या तत्व आईडी का नाम बदलने की आवश्यकता है।

+2

FYI में से किसी एक को बदलने की आवश्यकता है, मैं बस इसी तरह की समस्या में भाग गया, हालांकि मेरे मामले में मेरे पास एक HTML div आईडी के समान नाम के साथ एक var (फ़ंक्शन के बजाए) था । – bdf

संबंधित मुद्दे