10

मेरे पास एक कस्टम टेबल है जिसे मैं ड्रॉपडाउन हिस्से के रूप में DropDownList के रूप में उपयोग करना चाहता हूं।ड्रॉपडाउन सूची में ड्रॉपडाउन को खोलने से मैं कैसे रोक सकता हूं?

Table

आदर्श रूप में, जब उपयोगकर्ता DropDownList पर क्लिक करें, यह बजाय कस्टम तालिका नीचे सामान्य ड्रॉप दिखाना चाहिए। मैंने सोचा था कि ड्रॉपडाउनलिस्ट नियंत्रण को अक्षम किए बिना ड्रॉपडाउन को खोलने से रोकना आसान होगा, हालांकि यह मामला प्रतीत नहीं होता है।

क्या DropDownList को इसे अक्षम किए बिना खोलने से रोकने का कोई आसान तरीका है?

संपादित करें: यह एक एम्बेडेड IE 7 वेब ब्राउज़र के लिए काम करने के लिए है, और e.preventDefault() कि ब्राउज़र संस्करण

+2

यदि आप ड्रॉपडाउन सामग्री के प्रारूप को अनुकूलित कर रहे हैं, तो आप ड्रॉपडाउन को स्वयं भी अनुकूलित कर सकते हैं कुंआ। मौजूदा चयनित आइटम को प्रदर्शित करने के लिए बस एक टेक्स्टबॉक्स का उपयोग करें, और ड्रॉप डाउन जैसा दिखने के लिए डाउन-एरो आइकन वाले बटन। – mellamokb

+0

@mellamokb मैं उम्मीद कर रहा था कि एक आसान तरीका होगा ...मुझे 'चयनित वैल्यू' और 'डिस्प्ले वैल्यू' को अलग से ट्रैक करने की आवश्यकता है, क्योंकि वास्तविक चयनित मूल्य यूटीसी दिनांक है, जबकि डिस्प्ले दिनांक उपयोगकर्ता के टाइमज़ोन – Rachel

+0

पर आधारित है, क्या आपने 'रोकथाम' ईवेंट ''रोकथाम' या' झूठी वापसी '? – mellamokb

उत्तर

7

आप कुछ इस तरह कर सकते हैं::

इसके अलावा इस संबंधित सवाल को देखने

असल में, मैं इसे ब्लॉक करने के लिए ड्रॉप डाउन से अधिक एक अदृश्य div तैनात है, और आप onclick साथ क्लिक संभाल कर सकते हैं मास्किंग div का।

संपादित करें: मैं अद्यतन किया है इस http://jsfiddle.net/EdM7B/1/

<div id='mask' onclick='alert("clicked");' style='width:200px; height:20px; position:absolute; background:white;filter:alpha(opacity=0);'></div> 
<select id='selectList' show=1 style='width:200px; height:20px;'> 
    <option>Test</option> 
</select> 

मैं हैक का एक तरह उपयोग करने के लिए क्योंकि आईई divs ठीक से किया है कि कोई पृष्ठभूमि रंग सेट प्रस्तुत करना प्रतीत नहीं होता था, तो यह सही ढंग से काम नहीं कर रहा था । यह मेरे आई 7 में काम करता है।

यदि आप सभी ब्राउज़रों में काम करना चाहते हैं तो आपको क्रोम/फ़ायरफ़ॉक्स अस्पष्टता सीएसएस जोड़ने की आवश्यकता होगी या कुछ आईई केवल सीएसएस पृष्ठभूमि रंग लागू करने के लिए होगा।

मुझे लगता है कि जिस तरह से यह ऊपर स्थित है, वैसे ही अस्पष्टता वास्तव में ठीक से काम नहीं कर रही है क्योंकि तत्व पूरी तरह से स्थित है, या तो ऐसा लगता है कि यह काम करता है। मैं मूल रूप से इसे अस्पष्टता 1 के रूप में था, लेकिन यह मुझे गलत लगता है क्योंकि हम इसे अदृश्य चाहते हैं, इसलिए मैंने इसे 0

+0

यह मेरे उद्देश्य के लिए बहुत अच्छा काम करता है, बहुत बहुत धन्यवाद :) – Rachel

+0

यह 'शो' विशेषता वास्तव में क्या है? – mikesjawnbit

+0

मुझे लगता है कि यह एक त्रुटि है, यह आकार = 1 होना चाहिए मुझे लगता है। – NibblyPig

0

आप इस के लिए एक mega menu उपयोग करने के बारे में सोचा है में काम नहीं करता है, तो आप कुछ भी आप चाहते डाल सकते हैं नीचे गिरा भाग - उदाहरण के अपनी मेज के लिए

2

एक div अंदर रखो इस तरह:

<div id="dllDiv" style="width:200px;height:200px;"> 
     < asp:DropDownList ID="DropDownList1" runat="server" style="z-index:-1000px;pointer-events:none;"> 
     < /asp:DropDownList> 
    </div> 

आप सीएसएस संपत्ति सूचक-ए स्थापित करना चाहिए किसी से झरोखों, तो आप अपनी मेज एक div में छिपा या ajax कुछ इस तरह का उपयोग कर, द्वारा लोड दिखा सकते हैं:

(document).ready(function() { 
     $("#dllDiv").click(function() { 
      alert('adasd'); 
     }); 
    }); 
+1

स्वीकार करूंगा जो 'ड्रॉपडाउनलिस्ट' में ड्रॉपडाउन को खोलने से नहीं रोकता .... – Rachel

4

यह mousedown घटना में उपयोग कर jQuery के event.preventDefault दिखाए जाने से dropdownlist को रोकने के लिए संभव है (डेमो : http://jsfiddle.net/RCCKj)। stop chrome to show dropdown list when click a select

+0

दुर्भाग्यवश, मुझे इसे एक एम्बेडेड आईई 7 वेब ब्राउज़र में काम करने की ज़रूरत है और यह नहीं है। – Rachel

+0

आईई 7 पर, "event.preventDefault()" कमांड एक जावास्क्रिप्ट त्रुटि फेंक देगा, संभवतः क्योंकि, आपके मामले में, "घटना" संपत्ति चुनिंदा mousedown के अलावा किसी अन्य घटना को संदर्भित करती है। लेकिन इस जावास्क्रिप्ट त्रुटि के लिए धन्यवाद, ड्रॉपडाउन खोलने से रोका गया है। एक अच्छा "दुष्प्रभाव" शायद। –

+0

इसका उपयोग करने जा रहा था लेकिन ऐसा लगता है कि यदि आप इसे किसी भी डीबग मोड (यानी 10 अनुकरण यानी 8 का उपयोग करके) में डबल-क्लिक करते हैं, तो यह ड्रॉपडाउन मेनू खोल देगा। – Siemsen

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