2017-02-10 3 views
-1

Ich habe Wählteil in HTML-Seite mit der ID „wählen“ und ich einen JQuery-Code zum Beispiel:Wie kann ich eine Variable außerhalb des Event-Handlers verwenden?

$(document).ready(function() { 
    $(document).on("change", function() { 
     var text = $("#select").val(); 
    }); 
    allert(text); 
}); 

aber dieser Code nicht funktionieren. Wie kann ich "Text" außer Funktion setzen?

EDIT (HTML-Code):

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <script type="text/javascript" src="jquery.min.js"></script> 
     <script type="text/javascript" src="myjquerycode.js"></script> 
     <title>Untitled Document</title> 
    </head> 
    <body> 
     <select id="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> 
    </body> 
</html> 
+1

Sie können dies erreichen, indem Sie 'text' außerhalb des 'change'-Event-Handlers definieren, obwohl Sie ihn an dem Punkt warnen, an dem Sie redundant sind, da der Wert immer undefiniert ist. –

+1

Ihr Code macht keinen Sinn. Mit dem Befehl on ('change', ...) wird ein Ereignishandler eingerichtet, der erst ausgeführt wird, wenn ein Änderungsereignis eintritt. Die Warnung, die Sie nach dem Einrichten des Ereignishandlers haben, wird sofort ausgeführt, so dass das Ereignis nicht aufgetreten ist. Was möchten Sie erreichen? – MikeS

+0

Wenn Wert auswählen, ändern Sie meine Code-Warnung Wert auswählen. – RobinSon

Antwort

1

Vielleicht ID ist falsch. Überprüfen Sie Ihre ID.

Kasse Auch https://api.jquery.com/change/

Zum Beispiel:

$(document).ready(function() { 
 
    $("input").change(function() { 
 
    var text = $("#select").val(); 
 
    alert(text); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" id="select">

EDIT

$("select").change(function() { 
 
    var str = ""; 
 
    $("select option:selected").each(function() { 
 
    str += $(this).text() + " "; 
 
    }); 
 
    $("div").text(str); 
 
}).change();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select name="sweets" multiple="multiple"> 
 
    <option>Chocolate</option> 
 
    <option selected="selected">Candy</option> 
 
    <option>Taffy</option> 
 
    <option selected="selected">Caramel</option> 
 
    <option>Fudge</option> 
 
    <option>Cookie</option> 
 
</select> 
 
<div></div>

0

nur eine Funktion machen und es nennen, wenn Sie es brauchen.

$(document).ready(function() { 

    function getSelect() { 
    return $("#select").val(); 
    } 

    $("#select").change(function() { 
    alert(getSelect()); // This will alert you anytime you change it 
    }); 

    var selectValue = getSelect(); // You can get its value outside wherever else you need it 

}); 
+1

Sie korrigieren das Syntaxproblem, aber es ist keine Antwort von "Wie kann ich var in der aus Funktion verwenden?" – Alexis

+0

Überprüfen Sie die Änderung, die ich an der Antwort – eeetee

+0

vorgenommen habe Dieser Code war nicht funktionieren – RobinSon

0

Es ist nicht klar, wenn Sie den Wert

Hier verwenden mögen, wie der Wert der Auswahl zu warnen, wenn die Auswahl Änderungen

$(function() { 
    $("#select").on("change", function() { 
     var text = $(this).val(); 
     alert(text); 
    }); 
}); 

An anderer Stelle, nachdem die Auswahl in der existiert DOM:

alert($("#select").val()); 

oder

$("#select").change(); // trigger the already existing handler 
Verwandte Themen