2010-05-09 8 views
5

मैं jquery का उपयोग कर एक बटन बनाने की कोशिश कर रहा हूं। मैं निम्नलिखित कोडआईई 7 jquery ('<button/>') पसंद नहीं है .attr ('type', 'बटन')

jquery('<button/>', {type:'button'}).text(name) 

हालांकि इस सफारी, एफएफ IE8 लेकिन नहीं IE7

में काम करता है मैं attr समारोह का उपयोग करने की कोशिश की का उपयोग करें:

jquery('<button/>').attr('type','button').text(name) 

यह या तो काम नहीं करता।

कोई विचार क्या काम करेगा? मैं अगर मैं एक प्रकार असाइन नहीं करते यह बटन के लिए डिफ़ॉल्ट हैं लगता है, लेकिन मैं नहीं बल्कि यह है कि आपकी मदद

+0

क्या '

+4

दरअसल [बटन] (http://www.w3.org/TR/html401/interact/forms.html#h-17.5) टाइप = सबमिट करने के लिए डिफ़ॉल्ट। – Tgr

+2

बटन में एक प्रकार की विशेषता है, टाइप = बटन, टाइप = सबमिट करें और टाइप करें = रीसेट – salmane

उत्तर

5

इस प्रयास करें। हालांकि उपर्युक्त काम करना चाहिए। मैं बस दूसरे दिन इस में भाग गया। आईई तत्वों को बनाते समय आपको तत्व वाक्यविन्यास में सही प्रकार प्रदान करने देता है, और ऐसा लगता है कि jQuery बहुत कम स्तर के डीओएम एपीआई के माध्यम से सीधे अपने तर्क को पार कर रहा है।

ओह, और यह एफएफ और क्रोम में भी ठीक काम करता है।


संपादित — अच्छी तरह से क्या एक अंतर एक साल, बनाता है हाँ? मैं उस तंत्र को jQuery 1.4.4 या jQuery 1.5.x के साथ अभी मेरे लिए काम नहीं कर सकता। अच्छी खबर यह है कि jQuery 1.6 ओपी चाहता था जिस तरह से काम करता प्रतीत होता है: एक सामान्य सामान्य तरह से "प्रकार" सेटिंग के माध्यम से।

काम करता प्रतीत होता है, हालांकि, तत्व पर "setAttribute() "को सीधे कॉल करना है। इस प्रकार:

var b = $('<button/>'); 
b[0].setAttribute('type', 'button'); 

नहीं एक अपवाद फेंक करता है, और यह करता सेट "प्रकार" ठीक से जोड़कर देखते हैं। (यह स्वयं थोड़ा विचित्र है, क्योंकि माइक्रोसॉफ्ट स्पष्ट रूप से "टाइप" को केवल पढ़ने के रूप में दस्तावेज करता है।) 1.6 में परिवर्तन एक ही पंक्ति के साथ प्रतीत होता है। पूर्व में, लाइब्रेरी ने "टाइप" की जांच की थी और डीओएम में पहले से मौजूद तत्वों पर सेट होने की स्पष्ट रूप से अनुमति नहीं देगी, लेकिन इसे डीओएम में नहीं होने वाले तत्व के लिए एक सरल विशेषता के रूप में सेट करने और सेट करने के लिए आगे बढ़ेगा। अब, 1.6 कोड "टाइप" सेट करने के लिए "setAttribute() "को कॉल करता है, जो (मेरे लिए अज्ञात कारणों से) ठीक काम करता है।

+0

यह मेरे अंत कारण पर कुछ होना चाहिए क्योंकि मैंने कोशिश की और यह अभी भी काम नहीं करता है। ऐसा लगता है कि आईई 7, आईई 8, एफएफ और सफारी के पास टाइप = "बटन" भी डिफ़ॉल्ट है ... शायद मैं इसे अव्यवस्थित छोड़ दूंगा – salmane

+0

नहीं, यह निश्चित रूप से सही नहीं है: सभी "अच्छे" ब्राउज़र W3C spec का पालन करते हैं , जो निर्धारित करता है कि डिफ़ॉल्ट प्रकार "सबमिट" है। (वैसे यह "मानक मोड" में है; यदि आप क्विर्क मोड में हैं, तो अच्छी तरह से (ए) मुझे नहीं पता कि वे क्या करते हैं और (बी) क्विर्क मोड से बाहर निकलें।) – Pointy

+0

इसके अलावा, यह निश्चित रूप से आईई में काम करता है। आपका क्या मतलब है, बिल्कुल, जब आप कहते हैं "यह अभी भी काम नहीं करता है"? क्या आपको जावास्क्रिप्ट त्रुटि मिलती है? – Pointy

1

के लिए

धन्यवाद आप की कोशिश की है:

var $btn = $("<button>Button Text</button>"); 

तो फिर तुम में यह कहीं भी जोड़ सकते हैं आपका दस्तावेज़ आम तौर पर, आप इस तरह से एक स्ट्रिंग अक्षर का उपयोग कर किसी भी DOM तत्व के बारे में बना सकते हैं।

var button = $('<button type="button"/>'); 

अब, के रूप में यह होता है, बटन के लिए डिफ़ॉल्ट प्रकार "बटन" वैसे भी IE में (7 कम से कम, के बारे में निश्चित नहीं मानकों मोड 8) है:

+0

जो कोई संदेह नहीं करेगा कि मेरी परेशानी बटन के "प्रकार" के साथ है। जैसे ही मैं असाइन करता हूं कि आईई 7 इसे – salmane

+0

अस्वीकार करता है आप निश्चित रूप से ऐसा कर सकते हैं: var $ btn = $ (""); – BradBrening

+0

मैंने कोशिश की लेकिन यह काम नहीं किया। कुछ कैसे, जैसे ही मैं टाइप विशेषता आईई 7 प्रस्तुत नहीं करता .... क्या यह एक jquery 1.4 बग हो सकता है? – salmane

-1

मुझे लगता है कि आप इस $ उपयोग करना चाहते हैं (': प्रस्तुत')

यह कुछ भी है कि एक सबमिट बटन के रूप में कार्य पाता है। देखें: http://api.jquery.com/submit-selector/

+1

उपरोक्त एक पाठ एक नोड निर्माण आदेश है, न कि DOM चयनकर्ता कमांड। आप नए नोड को डोम में जोड़ सकते हैं। – artur02

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