2012-07-24 15 views
8
<select data-myattr="123" id="cboTest" 
     onchange="SayHello(this.data-myattr)"> 

यह काम नहीं करता है। अगर मैं data- इसे बंद करता हूं, तो यह काम करता है, लेकिन जो मैंने पढ़ा है, उससे एचटीएमएल 5 सुरक्षित है। हालांकि, इसे इस तरह से करना, मुझे मिलता है: "माइक्रोसॉफ्ट जेस्क्रिप्ट रनटाइम त्रुटि: 'myattr' अपरिभाषित है"मैं फ़ंक्शन में कस्टम विशेषता कैसे पास करूं?

function SayHello(msg) { 
    alert(msg); 
} 

अग्रिम धन्यवाद:

यह मेरी सुपर जटिल कार्य है।

+4

'this.dataset.myattr' ([shitty" ब्राउज़र] में काम नहीं करेगा (http://caniuse.com/dataset)) –

+1

शायद आप * विरासत ब्राउज़र * का मतलब था। –

+2

@ FrédéricHamidi हाँ, यह उचित शब्द होगा:: ' –

उत्तर

9

इस तरह का प्रयास करें:

<select data-myattr="123" id="cboTest" 
     onchange="SayHello(this.getAttribute('data-myattr'))"> 
+0

सही उत्तर !!! +1 :) – SagarPPanchal

1

अभिव्यक्ति:

onchange="SayHello(this.data-myattr)">

this.dataशून्य सेmyattr रूप interpretted किया जा रहा है। आपको इसका उपयोग करना होगा:

onchange="SayHello(this.getAttribute('data-myattr'))" 

इसके बजाए।

+1

वह [काम नहीं करता] (http://jsfiddle.net/TPZsT/) –

+0

@ ŠimeVidas यह आईई 9 में मेरे लिए किया था। – Yatrix

+0

क्षमा करें, मुझे लगता है कि डोम नोड्स इंडेक्सर्स को लागू नहीं करते हैं। इसके बजाय 'getAttribute()' का उपयोग करने का प्रयास करें। –

1

कुछ getAttribute() तरह

Here's an example करना चाहिए:

<select data-myattr="123" id="cboTest" 
onchange="SayHello(this.getAttribute('data-myattr'))"> 
    <option>1</option> 
    <option>2</option> 
</select> 

इसके अलावा, मैं जब से वे एचटीएमएल गन्दा कर इनलाइन स्क्रिप्ट का उपयोग न करने की कोशिश होगी। इसके बजाय addEventListener/attachEvent (पुरानी आईई) का उपयोग करें।

+1

आपको क्यों लगता है कि एट्रिब्यूट आवश्यक था? – Bergi

+0

@ बरगी अच्छा बिंदु। – Joseph

+0

@ जोसेफथड्रीमर मैं उपयोगकर्ता नियंत्रण में गतिशील रूप से नियंत्रण बना रहा हूं, इसलिए जब तक वे इसे ब्राउज़र में नहीं देखते हैं तब तक कोई भी HTML को नहीं देख पाएगा। जब मैं सी # कोड-पीछे में गतिशील रूप से नियंत्रण बनाता हूं तो मैं ऐड/अटैच का उपयोग करने के बारे में कैसे जाउंगा? मैंने कभी उनका इस्तेमाल नहीं किया है। – Yatrix

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