2016-10-24 1 views
0

Ich habe diesen Code auf meiner Webseite, der 'n' Zeilen mit einem Dropdown-Feld in jedem von ihnen platziert. Gibt es eine Möglichkeit, die Übergabeschaltfläche nur zu aktivieren, wenn alle Dropdown-Felder einen Wert enthalten (dh die Schaltfläche sollte nicht aktiviert sein, selbst wenn eine Dropdown-Liste leer ist). Außerdem möchte ich, dass der Senden-Button nach dem ersten Klick deaktiviert wird.So aktivieren Sie die Schaltfläche "Senden" nur, wenn alle Dropdowns innerhalb einer While-Schleife nicht null sind

Ich habe den folgenden Code versucht, funktioniert aber nicht.

$rowIndex = 0; 
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { 
<form> 
    <div> 
     <select name = error_type id='error_type$rowIndex' class='picker'> 
      <option disabled selected value> -- select an option -- </option> 
      <option value=2_Stage_Error>2_Stage_Error</option> 
      <option value=BG_Error>BG_Error</option> 
     </select> 
    </div> 
    $rowIndex++; 
    } 
    <input type='submit' value='SUBMIT' id='submit' onclick=report_submit()disabled 
      = true /> 
</form> 

JS

<script type= "text/javascript"> 
$(function() { 
    $('.picker').on('change', function() { 
    var $sels = $('.picker option:selected[value=""]'); 
    $("#submit").attr("disabled", $sels.length > 0); 
    }).change(); 
}); 
</script> 
+1

Zunächst einmal verwenden 'jQuery.prop' statt' attr' – Rayon

+0

https://jsfiddle.net/rayon_1990/dvphbf5f/1/ – Rayon

+0

hast du absichtlich außerhalb while-Schleife setzen die Form? – Beginner

Antwort

0

zunächst die Schaltfläche deaktivieren. der submit-Button meine ich. dann versuchen Sie dies:

function checkAllHasValue(){ 
    $(".picker").each(function(){ 
    var elem = $(this); 
    if(elem.val()+"" == "undefined"){ 
    return false; 
    } 

}) 
    return true; 
} 

$(".picker").on("change",function(){ 
    if(checkAllHasValue){ 
    $("submitbutton").removeAttr("disabled"); 
    } 

}) 
Verwandte Themen