2011-06-22 16 views
9

के भीतर से टेक्स्ट इनपुट का संदर्भ देना निम्नलिखित कोड को देखते हुए, मैं $.ajax कॉल में success() फ़ंक्शन के भीतर से स्वत: पूर्ण रूप से उस इनपुट को कैसे संदर्भित कर सकता हूं? न तो $(this) या $e काम।jQuery autocomplete

$('.parent-input').autocomplete({ 
    source: function(request, response) { 
    $.ajax({ 
     url: "/chunky/bacon", 
     dataType: 'json', 
     data: { 
     product_id: $('#product-id').val(), 
     term: request.term 
     }, 
     success: function(data){ 
     var resultCount = data.length; 
     // I NEED TO REFERENCE .parent-input HERE 
     response(data); 
     } 
    }); 
    }, 
    minLength: 2, 
    select: function(event, ui){ 
    addAssociatedProduct(ui.item.id, ui.item.value); 
    $(this).val(''); 
    return false; 
    } 
}); 
+0

वहाँ वर्ग के अनेक तत्वों 'अभिभावक input' हैं? यदि नहीं, तो क्यों न केवल इसे 'पैरेंट-इनपुट' की आईडी दें, और इसे चयनकर्ता फ़ंक्शन का उपयोग करके संदर्भित करें? – hughes

+0

कई उदाहरण हैं – bjork24

उत्तर

8

this.element के लिए एक संदर्भ सहेजें (this.element एक jQuery वस्तु एक और jQuery कॉल में लपेट की कोई जरूरत नहीं है, तो वास्तव में है):

$('.parent-input').autocomplete({ 
    source: function(request, response) { 
    var element = this.element; // <-- this.element is the input the widget is bound to. 
    $.ajax({ 
     url: "/chunky/bacon", 
     dataType: 'json', 
     data: { 
     product_id: $('#product-id').val(), 
     term: request.term 
     }, 
     success: function(data){ 
     var resultCount = data.length; 
     // element still refers to the input the widget is bound on. 
     // for example: 

     element.addClass("blue"); 

     response(data); 
     } 
    }); 
    }, 
    minLength: 2, 
    select: function(event, ui){ 
    addAssociatedProduct(ui.item.id, ui.item.value); 
    $(this).val(''); 
    return false; 
    } 
}); 
+0

यदि आप 'var element = this; 'का उपयोग करने जा रहे हैं, तो आपको शायद अजेक्स कॉल – hughes

+0

@ ह्यूजेस में' संदर्भ: तत्व 'पैरामीटर जोड़ना होगा: असल में मैं आपको नहीं सोचता * के पास है, लेकिन यह आपको AJAX कॉल के सफलता फ़ंक्शन के अंदर '$ (this)' का उपयोग करने में सक्षम करेगा। –

+0

ओह हाँ, आप सही हैं। उस स्थिति में, क्या 'तत्व' वैश्विक चर बन जाता है? या 'तत्व' की घोषणा के दायरे में सफलता का कार्य है? या जेएस में कोई फर्क नहीं पड़ता है? – hughes

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