2010-02-27 7 views
8

मैं एक रूप एक चेकबॉक्स के आधार पर अक्षम करने कर रहा हूँ में एक फार्म के भीतर प्रत्येक इनपुट क्षेत्र, एक मेज में लिपटे को निष्क्रिय ... मैं मुसीबत विकलांग विशेषता जोड़ने हो रहा है। एचटीएमएल:</p> <p>का चयन करें और jQuery

<table id="shipInfoTable"> 
    <tr> 
    <td>Name:</td> 
    <td><input type="text" name="name" /></td> 
    </tr> 
    ... 
</table> 

जावास्क्रिप्ट चयनकर्ता/हेरफेर विशेषता (jQuery):

$("#shipInfoTable tbody tr td input").each(function(index, item){ 
    item.attr("disabled", true); 
}); 

Chrome डेवलपर कंसोल त्रुटि: Uncaught TypeError: Object #<an HTMLInputElement> has no method 'attr'

जब

यहाँ मैं अब तक क्या मिला है मैं item को .each() के भीतर अलर्ट करता हूं, यहअलर्ट करता है 0

बिल्कुल सुनिश्चित नहीं है कि इनपुट तत्व का चयन कैसे करें। मैं क्या गलत कर रहा हूं?

उत्तर

12

फ़ंक्शन आपको एक jQuery ऑब्जेक्ट नहीं देगा। यह होना चाहिए:

$("#shipInfoTable input").each(function(index, item){ 
    $(item).attr("disabled", true); 
}); 

(ध्यान दें कि मैं भी अपने चयनकर्ता सरलीकृत, यह अभी भी काम करता है)
आप प्रत्येक आइटम के साथ कुछ भी Eles नहीं कर रहे हैं, तो इस रूप में अच्छी तरह से काम करेगा:

$("#shipInfoTable input").attr("disabled", true); 
+1

कृपया ध्यान दें: jQuery के मौजूदा संस्करणों में, इसे '.prop ("अक्षम", सत्य) में बदल दिया गया था। मुझे पूरा यकीन है कि 'attr' नहीं किया गया था वैसे भी इरादा था। – Kobi

4

....

$("#shipInfoTable tbody tr td input").each(function(){ 
    $(this).attr("disabled", true); 
}); 
0

मुद्दा चाहते प्रत्येक() फ़ंक्शन में $() की कमी है ...

$("#shipInfoTable tbody tr td input").each(function(index, item){ 
    $(item).attr("disabled", true); 
}); 
संबंधित मुद्दे