मैं निम्नलिखित कथन का उपयोग इसे आसानी से करने के लिए कर रहा हूं लेकिन यह काम नहीं कर रहा है।
$('#cf_1268591').attr("readonly", "readonly");
मैं इसे अक्षम नहीं करना चाहता, मैं इसे आसानी से बनाना चाहता हूं।
मैं निम्नलिखित कथन का उपयोग इसे आसानी से करने के लिए कर रहा हूं लेकिन यह काम नहीं कर रहा है।
$('#cf_1268591').attr("readonly", "readonly");
मैं इसे अक्षम नहीं करना चाहता, मैं इसे आसानी से बनाना चाहता हूं।
जवाबों:
$('#cf_1268591').attr("disabled", true);
ड्रॉप डाउन हमेशा केवल पढ़ा जाता है। आप जो कर सकते हैं, उसे अक्षम बना दिया है
यदि आप किसी फ़ॉर्म के साथ काम करते हैं, तो अक्षम फ़ील्ड सबमिट नहीं होते हैं, इसलिए अक्षम ड्रॉपडाउन मान को संग्रहीत करने के लिए एक छिपे हुए फ़ील्ड का उपयोग करें
prop()अभी उपयोग करना चाहिए ।
मेरे पास एक ही समस्या थी, मेरा समाधान चयनित नहीं सभी विकल्पों को अक्षम करना था। JQuery के साथ बहुत आसान:
$('option:not(:selected)').attr('disabled', true);
संपादित करें => यदि आपके पास एक ही पृष्ठ पर कई ड्रॉपडाउन हैं, तो नीचे दिए गए चयन-आईडी पर सभी चयनित विकल्पों को अक्षम न करें।
$('#select_field_id option:not(:selected)').attr('disabled', true);
$('option:not(:selected)').prop('disabled', true);
चयनित मान को अक्षम किए बिना इसे आज़माएं ..
$('#cf_1268591 option:not(:selected)').prop('disabled', true);
इससे मेरा काम बनता है..
यह वही है जो आप देख रहे हैं:
$('#cf_1268591').attr("style", "pointer-events: none;");
एक जादू की तरह काम करता है।
tabindex="-1"
किसी तत्व को सेट disabledकरने से डेटा सबमिट नहीं होगा, हालांकि selectतत्वों की आवश्यकता नहीं है readonly।
टैब के साथ परिवर्तन को रोकने के लिए आप स्टाइल और JS के लिए CSS का उपयोग करने readonlyपर अनुकरण कर सकते हैं select:
select[readonly] {
background: #eee;
pointer-events: none;
touch-action: none;
}
फिर इसका उपयोग करें जैसे:
var readonly_select = $('select');
$(readonly_select).attr('readonly', true).attr('data-original-value', $(readonly_select).val()).on('change', function(i) {
$(i.target).val($(this).attr('data-original-value'));
});
परिणाम:
मैं क्षेत्र को अक्षम बना देता। फिर, जब प्रपत्र सबमिट हो जाता है, तो इसे अक्षम न करें। मेरी राय में, यह छिपे हुए क्षेत्रों से निपटने की तुलना में आसान है।
//disable the field
$("#myFieldID").prop( "disabled", true );
//right before the form submits, we re-enable the fields, to make them submit.
$( "#myFormID" ).submit(function( event ) {
$("#myFieldID").prop( "disabled", false );
});
चयनित विकल्पों को न हटाने के लिए सरल jquery।
$('#your_dropdown_id option:not(:selected)').remove();
यहां चीजों को सरल बनाने के लिए एक jQuery प्लगइन है जो परेशानी के बिना करता है: https://github.com/haggen/readonly
यह पंक्ति readonlyकेवल पढ़ने के लिए विशेषता के साथ चयन करती है :
$('select[readonly=readonly] option:not(:selected)').prop('disabled', true);
यह कोड पहले प्रत्येक ड्रॉपडाउन पर मूल चयन को संग्रहीत करेगा। फिर अगर उपयोगकर्ता चयन को बदल देता है तो यह ड्रॉपडाउन को उसके मूल चयन में बदल देगा।
//store the original selection
$("select :selected").each(function(){
$(this).parent().data("default", this);
});
//change the selction back to the original
$("select").change(function(e) {
$($(this).data("default")).prop("selected", true);
});
यह एक पुराना लेख है, लेकिन मैं उन लोगों को चेतावनी देना चाहता हूं जो इसे पा लेंगे। नाम से तत्व के साथ अक्षम विशेषता के साथ सावधान रहें। अजीब है, लेकिन यह बहुत काम नहीं लगता है।
यह काम नहीं करता है:
<script language="JavaScript">
function onChangeFullpageCheckbox() {
$('name=img_size').attr("disabled",$("#fullpage").attr("checked"));
</script>
इस काम:
<script language="JavaScript">
function onChangeFullpageCheckbox() {
$('#img_size').attr("disabled",$("#fullpage").attr("checked"));
</script>
हाँ, मुझे पता है कि मुझे बेहतर प्रोप का उपयोग करना चाहिए, और एट्री का नहीं, लेकिन कम से कम अब प्रो प्रोप काम नहीं करेगा क्योंकि पुराने संस्करण के jquery, और अब मैं इसे अपडेट नहीं कर सकता, न ही पूछें कि क्यों ... html अंतर केवल आईडी जोड़ा गया है:। ..
<select name="img_size" class="dropDown" id="img_size">
<option value="200">200px
</option><option value="300">300px
</option><option value="400">400px
</option><option value="500">500px
</option><option value="600" selected="">600px
</option><option value="800">800px
</option><option value="900">900px
</option><option value="1024">1024px
</option></select>
<input type="checkbox" name="fullpage" id="fullpage" onChange="onChangeFullpageCheckbox()" />
...
मुझे स्क्रिप्ट में कोई गलती नहीं मिली है, और नाम के साथ संस्करण में, कंसोल में कोई त्रुटि नहीं थी। लेकिन यह कोड में मेरी गलती हो सकती है
पर देखा: विन 7 प्रो पर क्रोम 26
खराब व्याकरण के लिए क्षमा करें।
मैंने पाया है, ऐसा करने का एक बेहतर तरीका है कि पॉइंटर का उपयोग पॉइंटर-ईवेंट को हटाने और ड्रॉप डाउन पर अपारदर्शिता को संशोधित करने के लिए (0.5 का प्रयास करें)। यह उपयोगकर्ता को यह रूप देता है कि वह सामान्य रूप से अक्षम है, लेकिन फिर भी डेटा पोस्ट करता है।
दी यह है कि पीछे की संगतता के साथ कुछ मुद्दे हैं, लेकिन मेरी राय में यह एक बेहतर विकल्प है कि कष्टप्रद विकलांग / आसानी से जारी होने वाले मुद्दे के आसपास हो।
यह बहुत अच्छी तरह से काम करता है
$('#cf_1268591 option:not(:selected)').prop('disabled', true);
इससे मैं विकल्प देख सकता हूं लेकिन मैं इसका चयन नहीं कर सकता
पढ़ी-लिखी बूंद-बूंद जैसी कोई चीज नहीं होती। आप जो कर सकते थे, उसे प्रत्येक परिवर्तन के बाद मैन्युअल रूप से पहले मूल्य पर रीसेट करें।
$("select").change(function(event) {
$(this).val($(this).find("option").first().val());
});
$("select").change()तरह से jsfiddle.net/4aHcD/20
Html है:
<input id="cf_1268591" style="width:60px;line-height:16px;border:1px solid #ccc">
जक्वरी है:
$("#cf_1268591").combobox({
url:"your url",
valueField:"id",
textField:"text",
panelWidth: "350",
panelHeight: "200",
});
// रिक्त स्ट्रिंग के साथ कीप के बाद
var tb = $("#cf_1268591").combobox("textbox");
tb.bind("keyup",function(e){
this.value = "";
});
html5 का समर्थन:
`
$("#cCity").attr("disabled", "disabled");
$("#cCity").addClass('not-allow');
`
यहां अन्य उत्तरों पर थोड़ा बदलाव है जो विकलांगों का उपयोग करने का सुझाव देते हैं। चूंकि "अक्षम" विशेषता का वास्तव में कोई भी मूल्य हो सकता है और अभी भी अक्षम हो सकता है, आप इसे अक्षम रूप से "readonly" की तरह आसानी से सेट कर सकते हैं। यह हमेशा की तरह नियंत्रण को अक्षम कर देगा, और आपको सीएसएस की तरह, नियमित रूप से अक्षम नियंत्रणों की तुलना में इसे आसानी से स्टाइल करने की अनुमति देगा:
select[disabled=readonly] {
.... styles you like for read-only
}
यदि आप चाहते हैं कि डेटा को सबमिट करना शामिल हो, तो छिपे हुए फ़ील्ड का उपयोग करें या सबमिट करने से पहले सक्षम करें, जैसा कि अन्य उत्तरों में विस्तृत है।
जैसा कि @ कनिष्क ने कहा, अगर हम एक फॉर्म एलिमेंट को डिसेबल करते हैं तो इसे सबमिट नहीं किया जाएगा। मैंने इस समस्या के लिए एक स्निपेट बनाया है। जब चयनित तत्व अक्षम होता है तो यह एक छिपा हुआ इनपुट क्षेत्र बनाता है और मूल्य को संग्रहीत करता है। जब यह सक्षम होता है तो यह बनाए गए छिपे हुए इनपुट फ़ील्ड को हटा देता है।
jQuery(document).ready(function($) {
var $dropDown = $('#my-select'),
name = $dropDown.prop('name'),
$form = $dropDown.parent('form');
$dropDown.data('original-name', name); //store the name in the data attribute
$('#toggle').on('click', function(event) {
if ($dropDown.is('.disabled')) {
//enable it
$form.find('input[type="hidden"][name=' + name + ']').remove(); // remove the hidden fields if any
$dropDown.removeClass('disabled') //remove disable class
.prop({
name: name,
disabled: false
}); //restore the name and enable
} else {
//disable it
var $hiddenInput = $('<input/>', {
type: 'hidden',
name: name,
value: $dropDown.val()
});
$form.append($hiddenInput); //append the hidden field with same name and value from the dropdown field
$dropDown.addClass('disabled') //disable class
.prop({
'name': name + "_1",
disabled: true
}); //change name and disbale
}
});
});
/*Optional*/
select.disabled {
color: graytext;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="#" name="my-form">
<select id="my-select" name="alpha">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>
</form>
<br/>
<button id="toggle">toggle enable/disable</button>