2008-09-08 9 views
5

अगर कोई है, जहां एक आइटम का चयन के रूप में ही कार्य करता है कि कुछ में एक एचटीएमएललिंक करना कॉम्बो बॉक्स (JQuery अधिमानतः)

<select> 
    <option> Blah </option> 
</select> 

कॉम्बो बॉक्स धर्मान्तरित एक JQuery प्लगइन (शायद एक div) का उपयोग कर किसी भी अनुभव है मैं सोच रहा हूँ एक लिंक पर क्लिक करें।

मुझे लगता है कि आप शायद चयन ईवेंट को संभालने के लिए जावास्क्रिप्ट का उपयोग कर सकते हैं (इस समय मेरा जावास्क्रिप्ट ज्ञान अव्यवस्था में थोड़ा सा है) और कॉम्बो बॉक्स के मूल्य पर 'स्विच' लेकिन यह एक हैक की तरह लगता है।

आपकी सलाह, अनुभव और सिफारिशों की सराहना की जाती है।

उत्तर

8

सरल उपाय

$("#mySelect").change(function() { 
    document.location = this.value; 
}); 

यह सलेक्ट बॉक्स है कि आप यूआरएल चयनित विकल्प के मूल्य क्षेत्र में संग्रहीत पर रीडायरेक्ट पर एक onchange घटना बनाता है उपयोग करने के लिए है।

0

में 'का चयन करें' जावास्क्रिप्ट के इस बिट:

onchange="if(this.options[this.selectedIndex].value!=''){this.form.submit()}" 

यह आदर्श नहीं है (जो मैं नहीं दिखाई देते हैं का उपयोग कर रहा ASP.NET MVC में फ़ॉर्म सबमिशन यूआरएल के लिए मार्ग इंजन का उपयोग करने क्योंकि) लेकिन यह अपनी नौकरी करता है।

2

मुझे यकीन है कि तुम कहाँ जब आप डिव क्लिक करने के लिए लिंक करना चाहते हैं नहीं कर रहा हूँ, लेकिन कुछ इस तरह दिया शायद काम करेगा:

<select id="mySelect"> 
    <option value="1">Option 1</option> 
    <option value="2">Option 2</options> 
</select> 
<div id="myDiv"/> 

और निम्नलिखित JQuery <div> तत्वों की सूची बनाता है, एक हो जाता है विकल्प के मूल्य के आधार पर एक यूआरएल में:

$("#mySelect option").each(function() { 
    $("<div>" + $(this).text() + "</div>").appendTo($("#myDiv")).bind("click", $(this).val(), function(event) { 
     location.href = "goto.php?id=" + event.data; 
    }); 
}); 
$("#mySelect").remove(); 

क्या यह वही है जो आप चाहते हैं?

1

आप स्वतंत्र रूप से उन्हें परिभाषित करने की कोशिश करना कुछ इसी तरह के बिना, चयन बॉक्स है कि आप रीडायरेक्ट के रूप में उपयोग करने के लिए अनुमति देना चाहते हैं की एक बहुत कुछ है करने के लिए जा रहे हैं:

$("[id*='COMMON_NAME']").change(function() { 
    document.location = this.value; 
}); 

और अपने चयन बक्से हैं तदनुसार नाम दिया:

<select id="COMMON_NAME_001">...</select> 
<select id="COMMON_NAME_002">...</select> 

यह "COMMON_NAME" युक्त <option> मूल्य का एक रीडायरेक्ट करने के लिए सभी आईडी के लिए एक onchange घटना बनाता है।

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