2013-07-26 7 views
5

पर ड्रॉप डाउन से मूल्यों को चुनने पर जावास्क्रिप्ट को ड्रॉप डाउन से मूल्यों को चुनने के लिए, यदि चयनित मान किसी निश्चित मान के बराबर होते हैं, तो मैं ड्रॉपडाउन को केवल पढ़ने के लिए बदलना चाहता हूं, मैं यह कैसे कर सकता हूं?ड्रॉपडाउन वैल्यू चेंज

HTML:

<select id="s_id"> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    <option value="opel">Opel</option> 
    <option value="audi">Audi</option></select> 

स्क्रिप्ट:

$(document).ready(function() { 
    $("#s_id").change(function() { 
    var x = $(this).val(); 
    //alert("something's changed"); 
    alert($(this).val()); 
    if (x === opel) { 
     alert("iff only....."); 
     $(this).attr("readOnly", "true"); 
    } 
    }); 
}); 

फिडल: http://jsfiddle.net/L4reds/xKQUd/2/

+2

सबसे पहले, आपको मूल्य शर्त के चारों ओर उद्धरण जोड़ने की आवश्यकता है: 'if (x ===" opel ") ...'। दूसरा और अधिक महत्वपूर्ण बात, 'चयन' तत्वों को 'readonly' नहीं बनाया जा सकता है। उन्हें 'अक्षम' किया जा सकता है, लेकिन उनका मान तब फॉर्म डेटा के साथ नहीं भेजा जाएगा। –

+1

"केवल पढ़ने के लिए" का मतलब है कि मूल्य का चयन नहीं किया जा सकता है? –

+0

आपकी लाइन 'if (x == opel) {', variable 'opel' _undefined_ है। आप शायद _String_ के खिलाफ तुलना करना चाहते थे; 'अगर (x == 'opel') {' –

उत्तर

10

आप "opel" के एक सूत्र के x तुलना करने के लिए की जरूरत है और आप विशेषता disabled उपयोग कर सकते हैं, बेला यहाँ देख : http://jsfiddle.net/xKQUd/3/

स्पष्ट करने के लिए: select तत्वों readOnly करने के लिए सेट नहीं किया जा सकता, disabled विशेषता

आसपास सर्वर मुद्दे को नहीं भेज पाने के लिए, एक छिपा इनपुट विकलांग मूल्य के बराबर है कि फार्म जमा करने के बाद भेजा जाएगा सेट का उपयोग करने की आवश्यकता है बजाय, इस बेला यहाँ देखने: http://jsfiddle.net/xKQUd/25/

+2

के बजाय' prop' का भी उपयोग करता है तो बड़ी समस्या है हालांकि 'select' तत्व को 'readonly' नहीं बनाया जा सकता है। –

+0

इसलिए मैंने अक्षम विशेषता – verbanicm

+2

का उपयोग क्यों किया लेकिन इसका मतलब यह होगा कि चयनित मूल्य सर्वर पर कभी नहीं भेजा जाएगा, जो ओपी की आवश्यकता के मुकाबले हो सकता है। 'अक्षम' एक व्यावहारिक विकल्प नहीं है। –

1

Select attr नहीं है ReadOnly - बजाय यह हो सकता है disabled तो अपने कोड:

$(document).ready(function() { 
    $("#s_id").change(function() { 
     var x = $(this).val(); 
     //alert("something's changed"); 
     alert($(this).val()); 
     alert("x=======" +x); 
     if (x == "opel") { 
      alert("iff"); 
      // $(this).attr("readOnly", "true"); 
      $(this).attr('disabled',true); 
     } 
    }); 
}); 

btw open एक चर नहीं है, लेकिन मूल्य, तो उद्धरण "opel" और बेला में होने की जरूरत है: http://jsfiddle.net/xKQUd/5/

0

प्रयास करें

if (x == 'opel') { 
     alert("iff"); 
     $(this).attr("disabled", "true"); 
    } 

FIDDLE Demo

0

इस प्रयास करें,

if (x == "opel") { 

      $(this).attr("disabled", "disabled"); 
     } 
2

आपके कोड में, आपने opel को variable के रूप में उपयोग किया था। लेकिन यह variable नहीं है यह string है। तो आपको एक स्ट्रिंग के रूप में लेने की आवश्यकता है (सिंगल या डबल कोट्स में)।

$(document).ready(function() { 
    $("#s_id").change(function() { 
     var x = $(this).val();    
     alert($(this).val()); 
     alert("x=======" +x); 
     if (x == "opel") { 
      alert("iff"); 
      $(this).attr("disabled", "disabled"); 
     } 
    }); 
}); 

Try this jsfiddle

या एक चर var opel = "opel"; ले।

Try jsfiddle

1

Select तत्वों readonly सेट नहीं किया जा सकता, लेकिन इसके बजाय disabled हो सकता है। लेकिन इस मामले में, उनका मूल्य form के साथ सबमिट नहीं किया जाएगा।

आपके पास दो विकल्प हैं।

$(document).ready(function() { 
    $("#s_id").on("change", function() { 
     if ($(this).val() === "opel") { 
      $("#myHiddenField").val($(this).val()); 
      $(this).attr("disabled", "disabled"); 
     } 
    }); 
}); 

अन्य एक है, select से अन्य सभी विकल्पों को दूर करने के लिए, बस चयनित एक ही उपलब्ध छोड़ने:

एक चुना मूल्य के साथ एक hidden input स्थापित करने के लिए, और फिर select को निष्क्रिय है:

$(document).ready(function() { 
    $("#s_id").on("change", function() { 
    if ($(this).val() === "opel") { 
     $(this).children("option").each(function() { 
      if (this.value != "opel") 
       this.remove(); 
     }); 
    } 
    }); 
}); 

यह अब आपके ऊपर है। नीचे दिए गए कोड

0

प्रयास करें:

<select id="s_id"> 
<option value="volvo">Volvo</option> 
<option value="saab">Saab</option> 
<option value="opel">Opel</option> 
<option value="audi">Audi</option> 
</select> 

Jquery कोड:

$(document).ready(function() { 
$("#s_id").change(function() { 
var x = $(this).val();  
if (x == 'opel') { 
    $(this).attr('disabled','disabled'); 
} 
}); 
}); 

http://jsfiddle.net/Ea6NN/

0

यहाँ आप http://jsfiddle.net/SteveRobertson/xKQUd/24/

 $(document).ready(function() { 
      y=1; 
      $("#s_id").change(function() { 
      var x = $(this).val(); 
    //alert("something's changed"); 


      if (x == "opel" && x!=y) {   
       y=x; 
       $("#s_id").prop("disabled", true).change();    
    } 
}); 

} हैं);

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