2015-08-30 8 views
10

में 'चयनित' संपत्ति को अपडेट नहीं किया गया है, कृपया बताएं कि मैं विकल्प की 'चयनित' संपत्ति कैसे बदल सकता हूं? उदा .:विकल्प का चयन एचटीएमएल वेब पेज

<select id="lang_select"> 
    <option value="en" selected="selected">english</option> 
    <option value="ar">العربية</option> 
    <option value="az">azərbaycanlı</option> 
    <option value="bg">български</option> 
    <option value="ca">català</option> 
    <option value="cs">český</option> 
    <!-- some data cut --> 
</select> 

तो, अगर मैं डाउन सूची मूल्य कुछ भी नहीं ड्रॉप बदल एचटीएमएल-डेटा में बदल जाता है। क्यों?

केवल अगर मैं jQuery का उपयोग करके संपत्ति को पुनः लोड करने का प्रयास करता हूं तो यह काम करता है।

$(document).on('change',"select",function(){ 
    var i = $(this)[0].selectedIndex; 
    var ch = $(this).children().each(function(index){ 
     $(this).prop('selected',index == i); 
     if (index == i) { 
      $(this).attr('selected','selected'); 
     } else { 
      $(this).removeAttr('selected'); 
     } 
    }); 
}); 

क्यों? इससे कैसे बचा जा सकता है? क्या शुद्ध एचटीएमएल का उपयोग करके "चयनित" बदलना संभव है?

संपादित मैं अर्थात् html टैग में इस attrbute चाहते हैं, क्योंकि मैं बचाने के लिए और भविष्य में इस एचटीएमएल-कोड का हिस्सा बहाल करने के लिए की जरूरत है।

उत्तर

12

Updated का मूल्य बदल, के लिए .prop("selected", true)

नोट .attr("selected", true) एवजी, selected विशेषता का मान देता है true या false,नहीं।

कोशिश चयनकर्ता $("option[value=" + this.value + "]", this), सेट संपत्ति selected उपयोग true, .siblings() को option से selected विशेषता को दूर करने के

$(document).on("change","select",function(){ 
 
    $("option[value=" + this.value + "]", this) 
 
    .attr("selected", true).siblings() 
 
    .removeAttr("selected") 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<select id="lang_select"> 
 
<option value="en" selected="true">english</option> 
 
<option value="ar">العربية</option> 
 
<option value="az">azərbaycanlı</option> 
 
<option value="bg">български</option> 
 
<option value="ca">català</option> 
 
<option value="cs">český</option> 
 
<!-- some data cut --> 
 

 
</select>

+0

यह कोड 'चयनित' टैग विशेषता नहीं जोड़ता है। लेकिन सही परिणाम देने के लिए इस कोड को संशोधित करना संभव है। मैं एक पंक्ति में 'चयनित' विशेषता ई को सही ढंग से कैसे जोड़ सकता हूं? $ (This) .attr ('का चयन किया', 'चयनित'); - यह कोड। – Vyacheslav

+0

@trololo अद्यतन पोस्ट देखें – guest271314

0

val() विधि का उपयोग करें। तो आपके मामले में, $("#lang_select").val('en'); अंग्रेजी विकल्प का चयन करता है। और वैसे यदि आप पहले विकल्प का चयन करना चाहते हैं तो आपको selected="selected" की आवश्यकता नहीं है। डिफ़ॉल्ट रूप से पहला विकल्प स्वचालित रूप से चुना जाता है।

+0

चयनित नहीं मैंने लिखा मैं अर्थात् html में इस विशेषता की जरूरत है। – Vyacheslav

1

यह html बदल नहीं है ही, लेकिन यह डीओई की select

$('select').change(function(){ 
 
    $('#result').html($(this).val()); 
 
}).trigger('change');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="lang_select"> 
 
    <option value="en" selected="selected">english</option> 
 
    <option value="ar">العربية</option> 
 
    <option value="az">azərbaycanlı</option> 
 
    <option value="bg">български</option> 
 
    <option value="ca">català</option> 
 
    <option value="cs">český</option> 
 
    <!-- some data cut --> 
 
</select> 
 
<hr /> 
 
<div id="result"></div>

+0

मैंने अपना प्रश्न अपडेट कर लिया है। एचटीएमएल कोड के इस हिस्से को सहेजने और पुनर्स्थापित करने के लिए मुझे 'चयनित' विशेषता की आवश्यकता है। – Vyacheslav

+0

आप एचटीएमएल कहां से बचाते हैं? क्या आपने मूल्य को नहीं बचाया, और बाद में इसे स्थापित किया? सर्वर पर –

+0

। मैं उपयोगकर्ता के वर्तमान काम को बचाने के लिए कुछ एचटीएमएल कोड का सही पृष्ठ भेजता हूं। इसलिए, जब उपयोगकर्ता बाद में अपना काम डाउनलोड करता है, तो 'चयनित विकल्प' चुना जाना चाहिए। – Vyacheslav

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