2012-02-12 11 views
10

निष्पादित मैं कुछ विकल्प संलग्न के साथ एक सरल एचटीएमएल चयन टैग है:एचटीएमएल से जावास्क्रिप्ट समारोह का चयन

<select> 
<option>school a</option> 
<option>school b</option> 
<option>school c</option> 
</select> 

मैं विकल्प के लिए उसी तरह मैं कहना होगा कुछ सरल ईवेंट हैंडलर्स अटैच करना चाहते हैं .. । एक लिंक:

<option onclick="scheduleA();">school a</option> 

मैं घटना इस स्थिति में पकड़ कर या वहाँ कुछ त्वरित एचटीएमएल है कि इस कार्य को पूरा करेगा से निपटने के लिए एक अलग जावास्क्रिप्ट समारोह का निर्माण करने की आवश्यकता है?

+0

'विनिमय' पर एक नज़र डालें। आप पैरामीटर के साथ एक समारोह लिखते हैं। – Smamatti

+0

वहां आप मेरे दोस्त को http://stackoverflow.com/questions/2000656/using-href-links-inside-option-tag – Alexander

+0

धन्यवाद एलेक्स, मैंने पोस्ट करने से पहले इसे नहीं देखा। – kjarsenal

उत्तर

14

<select> पर onChange="schedule(this.value); असाइन करने से बेहतर होगा। आंशिक रूप से क्योंकि यह वास्तव में काम करता है, आंशिक रूप से अनावश्यक कोड से बचने के लिए यदि एक ही विकल्प दो बार चुना जाता है, आंशिक रूप से क्योंकि कम ईवेंट हैंडलर हमेशा बेहतर होते हैं।

+0

@kjarsenal: यदि आप IE के पुराने संस्करणों का समर्थन कर रहे हैं, तो बस प्रत्येक 'विकल्प' तत्व को अपनी 'मान' विशेषता' देना सुनिश्चित करें। जब आप इसे एक मान विशेषता नहीं देते हैं तो पुराना IE स्वचालित रूप से 'विकल्प' की टेक्स्ट सामग्री को प्रतिस्थापित नहीं करेगा। –

+0

नोट किया गया। उन मानों को ढांचे द्वारा गतिशील रूप से उत्पन्न किया जाएगा। धन्यवाद। – kjarsenal

7

select

<select onchange="scheduleA.call(this, event)"> 
फिर अपने हैंडलर में

पर एक onchange घटना का उपयोग करें ...

function scheduleA(event) { 
    alert(this.options[this.selectedIndex].text); 
} 

डेमो: onchange बजायhttp://jsfiddle.net/hYY6X/

0

उपयोग

<select onchange="schedule(this.value)"> 
<option>school a</option> 
<option>school b</option> 
</select> 

function schedule(selectedValue){ 
    ... do something with selectedValue 
} 
+1

शायद, जब मैं पृष्ठ लोड करता हूं तो उत्तर को छोड़कर वहां नहीं था ... यदि कुछ भी इस तथ्य को फिर से लागू करता है तो यह एक उपयुक्त समाधान है। मॉडरेटर हटाने या जो कुछ भी मुक्त महसूस करते हैं। मैं यहां इतने लंबे समय तक नहीं रहा हूं लेकिन मुझे वास्तव में इंप्रेशन मिलता है कि समुदाय से नापसंद एक रवैया है - शायद ही कभी उत्साहजनक – dannix

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