jquery

2015-05-20 3 views
11

द्वारा भौतिक आकार का चयन करें बॉक्स का मूल्य बदलें मैं jquery द्वारा materialize select box value को बदलना चाहता हूं।jquery

मैं $('#myselect').val('1');onchange पर अन्य चयन बॉक्स की घटना का उपयोग कर रहा हूं लेकिन यह काम नहीं करता है।

$("#select1").change(function() { 
    $('#myselect').val('1'); 
}); 
+0

आप को समझाने के लिए वास्तव में क्या हो रहा है करना चाहते हैं? क्या आपको कोई त्रुटि है या आप jsfiddle.net पर पुन: पेश कर सकते हैं? – logikal

+0

त्रुटि नहीं आ रही है और यदि मैं सामग्री चयन बॉक्स का उपयोग करता हूं तो चयन बॉक्स का मूल्य भी नहीं बदल रहा है। लेकिन अगर मैं ब्राउज़र का चयन बॉक्स का उपयोग करता हूं तो यह आसानी से बदल जाता है। – phpboy

उत्तर

21

यह मेरे लिए ठीक काम करने के लिए, पहले ड्रॉप डाउन बदलने के लिए प्रकट होता है, करने के लिए 1.

मैं jsFiddle पर एक मोटा कार्यान्वयन किया है नीचे दूसरे ड्रॉप का मूल्य रीसेट करता है: http://jsfiddle.net/55r8fgxy/1/

<select id="select1"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option> 
</select> 

<select id="myselect">  
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option> 
</select> 

जे एस:

$(function() { 
    $("#select1").on('change', function() { 
     $('#myselect').val("1"); 

     // re-initialize material-select 
     $('#myselect').material_select(); 
    }); 
}); 
+0

मैं भौतिक आकार का चयन बॉक्स का उपयोग नहीं कर रहा हूं, यह मेरे लिए भी काम कर रहा है कृपया कृपया सामग्रीज़ सीएसएस चयन बॉक्स का उपयोग करें, फिर आप यह देखने में सक्षम हैं कि मुझे क्या समस्या है। Http: //materializecss.com/forms.html – phpboy

+1

ठीक है, मेरे पास नहीं है इसका इस्तेमाल किया - लेकिन मुझे लगता है कि आपको अपना मूल्य बदलने के बाद '# myselect' तत्व को फिर से शुरू करना होगा। '$ (" # myselect ")। material_select();' – logikal

+0

अद्यतन फ़िल्ड काम करता है: http://jsfiddle.net/55r8fgxy/1/ – logikal

9

@logikal ने सुझाव दिया के रूप में, आप फिर से आरं करने के लिए मिल गया है tialize

$("#myselect").material_select() 
2

प्रतिनिधि कार्यक्रम का उपयोग करना मेरे लिए समस्या को हल करता है।

एचटीएमएल

<div class="input-field col s10" id="pickerContainer"> 
<select> 
      <option value="" disabled selected>Choose your option</option> 
      </select> 
      </div> 

जे एस

$('#pickerContainer').on('change', 'select', function(){ 
console.log("got you"); 
}); 
3

बल्कि .val का उपयोग कर(), यह jQuery के साथ हमेशा की तरह मान सेट करने के क्लीनर है की तुलना में:

$('#my-select').find('option[value="my-value"]').prop('selected', true); 
$("#my-select").material_select(); 
0

मैं से उचित समाधान नहीं मिला here

अमल में लाना

<div class="input-field col s12"> 
<select multiple> 
    <option value="" disabled selected>Choose your option</option> 
    <option value="1" selected>Option 1</option> 
    <option value="2">Option 2</option> 
    <option value="3" selected>Option 3</option> 
</select> 
<label>Materialize Multiple Select</label> 

में एक से अधिक के लिए 0

और अब आप अपने जावास्क्रिप्ट अनुभाग में बस थोड़ा परिवर्तन और है कि यूआरएल है:

<script src="http://materializecss.com/bin/materialize.js" /> 
बजाय

<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.2/js/materialize.min.js"></script> 

या materialize.min.js

का कोई अन्य लिंक

और कई के लिए सक्षम करने के लिए का चयन करें:

$(document).ready(function() { 
     $('select').material_select(); 
    }); 

Thats यह। आप इस समाधान का प्रदर्शन देख सकते हैं: JSFiddle

1

यह वही जवाब logikal के समान है लेकिन मुझे लगता है कि है क्लीनर:

$(".your-component-class").change(function(){ 

    //your code.. 


    //re-initialize component 
    $(this).material_select();  
}); 
1

एक नया अमल में लाना 1.0.0 उपयोग .select() के बजाय के लिए .material_select()

पुन: प्रारंभ करने के बिना समाधान।

function msValue (selector, value) { 
selector.val(value).closest('.select-wrapper').find('li').removeClass("active").closest('.select-wrapper').find('.select-dropdown').val(value).find('span:contains(' + value + ')').parent().addClass('selected active'); 
} 

तो बस का उपयोग

msValue($("#select_id"), "value_here")