2015-06-03 9 views
6

मैं केवल chosen ड्रॉपडाउन मेनू को पढ़ने के लिए देख रहा हूं, और मुझे एक jQuery चयनकर्ता का उपयोग करके गतिशील रूप से ऐसा करने की आवश्यकता है। अगर मैं इसे अक्षम करने के लिए सेट करता हूं:चुनना ड्रॉपडाउन केवल पढ़ने (अक्षम नहीं)

$("#dropdownDepartment").attr("disabled","disabled").trigger('chosen:updated'); 

मान पोस्ट नहीं किया गया है लेकिन मुझे इसकी आवश्यकता है।

मैं

$("#dropdownDepartment").attr('readonly',true).trigger('chosen:updated'); 

की कोशिश की है, लेकिन यह काम नहीं करता।

मैं Chosen v1.4.2 और jQuery v2.1.4 का उपयोग कर रहा हूं।

सहायता की सराहना की! धन्यवाद।

+0

क्या आपका मतलब है 'अक्षम'? मेरा मतलब था कि आप नहीं चाहते कि उपयोगकर्ता इसे क्लिक करें? –

+0

यदि आप अक्षम करना चाहते हैं तो आप इसे आजमा सकते हैं: - http://jsfiddle.net/ymou0ffx/1/ –

+3

मैं इसे अक्षम नहीं करना चाहता हूं। मैं इसे केवल पढ़ना चाहता हूं। – Robin

उत्तर

4

कुछ विकल्प हैं जो आप कर सकते हैं।

  • ड्रॉप डाउन को अक्षम करें और मूल्य को एक छिपे हुए फ़ील्ड में स्टोर करें और उसे पोस्ट में भेजें।
  • अक्षम सभी अन्य चयन इसलिए केवल एक चयनित सक्षम किया गया है

    $('#dropdownDepartment option:not(:selected)').attr('disabled', true); 
    
  • ड्रॉप डाउन अक्षम करें और यह
  • सक्षम आप इसे में एक रीड ओनली इसे चालू अक्षम करना चाहते हैं जब इससे पहले कि आप एक पोस्ट करना पाठ बॉक्स
5

इस कोशिश: -

var select = $('select'); 
var oldVal=$('select').val(); 
select.chosen().on('change',function(e){ 
    select.val(oldVal); 
    select.trigger("chosen:updated"); 
}); 

Demo

2

मेरे पास एक कामकाज है। तो उम्मीद है कि यह भविष्य में किसी की मदद करेगा (मुझे लगता है कि आपने पहले ही समाधान किया है)।

पहले चुने गए चुने हुए चुने हुए इनपुट के चयनित विकल्प मूल्य को निम्न जैसे प्रिंट करें। $_POST मूल्य के लिए इस छिपे हुए इनपुट $_POST['myselect'] से मूल्य मिलता है:

<input type="hidden" name="myselect" value="selected_option_value_goes_here" /> 

फिर चुनिंदा चुना अक्षम करें। लेकिन इसे अक्षम करने से पहले छुपा इनपुट मान को चालू करने के लिए सुरक्षित है:

$('input[name=myselect]').val($(".chosen-select").val()); 
$('.chosen-select').attr("disabled", true).trigger("chosen:updated"); 

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

A working demo can be found by clicking here.

0

मैं पार्टी के लिए देर से हो सकता है, लेकिन मैं ओ पी के रूप में ही इस मुद्दे बारे में जाना। जब वे अक्षम हैं, तब भी वे मानों को वापस पोस्ट करने के लिए पाए गए वर्कअराउंड को फॉर्म सबमिट होने पर उन्हें फिर से सक्षम करना है।

$("form").bind("submit", function() { 
    $("#TheList *").prop("disabled", false).trigger("chosen:updated"); 
}); 

द लिस्ट के बाद [अंतरिक्ष] [स्टार] पर ध्यान दें, यह सूची में प्रत्येक बच्चे को दोबारा सक्षम करने के लिए है।

0

मेरे लिए सबसे अच्छा समाधान इतनी बदसूरत चाल $("#dropdownDepartment").prop('disabled',true).trigger('chosen:updated').prop('disabled',false) थी। इसलिए चुना गया अक्षम है लेकिन चयन से मूल्य पोस्ट किया गया है।

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