2013-05-23 8 views
5

मैं जावा स्क्रिप्ट के लिए नया हूं। यहां मेरे पास 2 ड्रॉप डाउन Fiddle के लिए उदाहरण का उदाहरण है।3 ड्रॉपडाउन एक अन्य [कैस्केडिंग ड्रॉपडाउन] में चयन के आधार पर जनसंख्या

HTML:

<select id=a></select> 
<select id=b></select> 
<select id=c></select> 

जावास्क्रिप्ट:

var data = [ // The data 
    ['ten', [ 
     'eleven','twelve' 
    ]], 
    ['twenty', [ 
     'twentyone', 'twentytwo' 
    ]] 
]; 

$a = $('#a'); // The dropdowns 
$b = $('#b'); 

for(var i = 0; i < data.length; i++) { 
    var first = data[i][0]; 
    $a.append($("<option>"). // Add options 
     attr("value",first). 
     data("sel", i). 
     text(first)); 
} 

$a.change(function() { 
    var index = $(this).children('option:selected').data('sel'); 
    var second = data[index][2]; // The second-choice data 

    $b.html(''); // Clear existing options in second dropdown 

    for(var j = 0; j < second.length; j++) { 
     $b.append($("<option>"). // Add options 
      attr("value",second[j]). 
      data("sel", j). 
      text(second[j])); 
    } 
}).change(); // Trigger once to add options at load of first choice 

मुझे एक और ड्रॉप इस कोड में नीचे जोड़ने के बारे में जानते हैं।

धन्यवाद इस तरह

+0

राका आप व्याख्या कर सकते हैं आपकी समस्या को थोड़ा और अधिक – vinothini

+0

हाय, वर्तमान में मैं "देश" के लिए कोड ऊपर उपयोग कर रहा हूँ और " राज्य "ड्रॉप डाउन। राज्य ड्रॉपडाउन आधारित देश चयन अद्यतन करेगा। अब मुझे राज्य चयन के आधार पर अद्यतन करने के लिए शहर क्षेत्र जोड़ने की जरूरत है। – Raka

उत्तर

2

कोशिश कुछ .. मैं थोड़ा data वस्तु की संरचना बदलना पड़ा। तुम सिर्फ कर सकते हैं लटकती का मूल्य प्राप्त करने के लिए अगला .val()

var data = { 
    'ten': { 
     'eleven': [11, 1111, 111111], 
     'twelve': [12, 1212, 121212] 
    }, 
    'twenty': { 
     'twentyone': [21, 2121, 212121], 
     'twentytwo': [22, 2222, 222222] 
    } 
}, 
$a = $('#a'); // The dropdowns 
$b = $('#b'); 
$c = $('#c'); 

for (var prop in data) { 
    var first = prop; 
    $a.append($("<option>"). // Add options 
    attr("value", first). 
    text(first)); 
} 

$a.change(function() { 
    var firstkey = $(this).val(); 
    $b.html(''); // Clear existing options in second dropdown 
    for (var prop in data[firstkey]) { 
     var second = prop; 
     $b.append($("<option>"). // Add options 
     attr("value", second). 
     text(second)); 
    } 
    $b.change(); 
}).change(); // Trigger once to add options at load of first choice 

$b.change(function() { 
    var firstKey = $a.val(), 
     secondKey = $(this).val(); 
    $c.html(''); // Clear existing options in second dropdown 
    for(var i = 0; i < data[firstKey][secondKey].length; i++) { 
     var third = data[firstKey][secondKey][i] 
     $c.append($("<option>"). // Add options 
     attr("value", third). 
     text(third)); 
    } 
    $c.change(); 
}).change(); 

Check Fiddle

+0

वास्तव में काम करने की अपेक्षा की गई। धन्यवाद – Raka

+0

@Raka .. मदद करने में खुशी हुई :) –

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