2017-02-10 11 views
-1

は、私が「選択」idを持つHTMLページの選択部を持っていると私は、例えばjQueryのコードを作成します。イベントハンドラ以外の変数はどのように使用できますか?

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

が、このコードは動作しません。どのようにして「テキスト」を機能外に呼び出すことができますか?

EDIT(HTMLコード):

<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

これは、 'change'イベントハンドラの外側で' text'を定義することで実現できますが、値が常に定義されていないため、あなたのポイントで警告することは冗長です。 –

+1

あなたのコードは実際には意味をなさない。 on( 'change'、...)は、変更イベントが発生するまで実行されないイベントハンドラを設定します。イベントハンドラを設定した後の警告はすぐに実行され、イベントは発生しません。 あなたは何を達成しようとしていますか? – MikeS

+0

選択値がマイコードアラート選択値を変更したとき。 – RobinSon

答えて

1

おそらくIDが間違っています。あなたのIDを確認してください。

、例えばhttps://api.jquery.com/change/

をチェックアウト:

$(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

ジャスト機能を作り、あなたがそれを必要なときにそれを呼び出します。

$(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

構文の問題を修正しましたが、「関数からvarを使用するにはどうすればよいですか? – Alexis

+0

私が答えに行った編集を確認してください – eeetee

+0

このコードは機能しませんでした – RobinSon

0

あなたがここで値

を使用したい場合に選択が中に存在する選択変更

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

他の場所の後にする際の選択の価値を警告する方法である明確ではありませんDOM:

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

または

関連する問題