2016-08-23 3 views
0

Ich habe tow dropdown die erste zeigen das Element von Nummer, und die zweite zeigen die Namen der Artikel, so dass der Benutzer das Element nach Artikelnummer oder nach Artikelnamen auswählen und wenn er wählen kann Artikelnummer wird ein weiteres Auswahlfeld ausgewählt Wert aktualisieren ihr ist mein Codeselect2 Maximale Callstack überschritten auf abhängige Dropdown

i auf Änderungsfunktion einfach erstellen

einem anderen Dropdown-Wert zu aktualisieren

$('.select').select2({ 
 
    "width":"100px" 
 
}); 
 

 

 
$(document).on("change", "#block_name", function() { 
 
    id = $(this).val(); 
 
    $("#block_number").select2('val',id); 
 
}); 
 

 
$(document).on("change", "#block_number", function() { 
 
    id = $(this).val(); 
 
    $("#block_name").select2('val',id); 
 

 
});
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css"> 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script> 
 

 
<select name="block" id="block_name" class="select"> 
 
    <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 name="block_number" id="block_number" class="select"> 
 
    <option value="1">block1</option> 
 
    <option value="2">block2</option> 
 
    <option value="3">block3</option> 
 
    <option value="4">block4</option> 
 
    <option value="5">block5</option> 
 
</select>

jemand mir helfen könnte iw Ich schätze es

Antwort

0

Wenn Sie den Wert des Dropdown-Menüs select2 setzen, wird das Änderungsereignis ausgelöst und eine Endlosschleife ausgelöst. Also musst du einen Fall dafür haben. Etwas wie folgt aus:

$('.select').select2({ 
    "width":"100px" 
}); 


$(document).on("change", "#block_name", function() { 
    id = $(this).val(); 
    if($("#block_number").val() != id){ 
     $("#block_number").select2('val',id); 
    } 
}); 

$(document).on("change", "#block_number", function() { 
    id = $(this).val(); 
    if($("#block_name").val() != id){ 
     $("#block_name").select2('val',id); 
    } 

}); 
+0

danke soviel seine feinen jetzt – maali

0

ändern wie folgt aus:

$(document).ready(function(){ 
    $('.select').css({width:100}); 

    $("#block_name").on("change", function() { 
     id = $(this).val(); 
     $("#block_number option[value = " + id + "]").prop("selected",true); 
    }) 

    $("#block_number").on("change", function() { 
     id = $(this).val(); 
     $("#block_name option[value = " + id + "]").prop("selected",true); 
    }) 
}) 

Schlusscode:

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    
 
</head> 
 
<body> 
 
    <select name="block" id="block_name" class="select"> 
 
    <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 name="block_number" id="block_number" class="select"> 
 
    <option value="1">block1</option> 
 
    <option value="2">block2</option> 
 
    <option value="3">block3</option> 
 
    <option value="4">block4</option> 
 
    <option value="5">block5</option> 
 
</select> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
 
    <script> 
 
$(document).ready(function(){ 
 
    $('.select').css({width:100}); 
 
    
 
    $("#block_name").on("change", function() { 
 
     id = $(this).val(); 
 
     $("#block_number option[value = " + id + "]").prop("selected",true); 
 
    }) 
 
    
 
    $("#block_number").on("change", function() { 
 
     id = $(this).val(); 
 
     $("#block_name option[value = " + id + "]").prop("selected",true); 
 
    }) 
 
}) 
 
    </script> 
 
</body> 
 
</html>

+0

@maali arbeiten, Scheck meine Antwort! – Ehsan

+0

danke @ehsan Ihr Code funktioniert auch, aber ich habe die Eddie-Lösung verwendet – maali

Verwandte Themen