6

私は些細な問題のように思われることに固執していて、おそらくこれを見逃したことで自分自身を蹴るつもりです..とにかく、私の問題は、テキストフィールドから値を取得できないことです。

HTML:

<form>
        <label for="">Enter Username:</label>
        <input id="usernameText" type="text" size="30" />
        &nbsp;&nbsp;<input type="button" value="Generate" onclick="generateQuery(); return     false;" />
</form>

Javascript:

<script type="text/javascript">

        var username = $("#usernameText").val();

        function generateQuery(){

            alert(username);

        }
</script>

私は次のことif (jQuery) {..を行い、JQueryがロードされていることを確認しました。

アラートでは、空のダイアログボックスが表示されます。

$(document).ready();スクリプトにを含めた場合、関数generateQueryは呼び出されません。理由は何ですか..?

<script type="text/javascript">

    $(document).ready(function(){
        var username = $("#usernameText").val();

        function generateQuery(){

            alert(username);

        }
    });     
</script>
4

5 に答える 5

10

関数内で変数を割り当てます。

function generateQuery(){
  var username = $("#usernameText").val();
  alert(username);
}

他の質問については、「$(document).ready();をスクリプトに含めた場合、関数生成は呼び出されません。理由はわかりません。..?」

これはスコープが原因で発生します。generateQueryハンドラーを追加するときに無名関数内にラップするため、コードdocument.readyには表示されません。button onclick="generateQuery()"

于 2013-03-25T04:01:34.860 に答える
3

ここでは、ページの読み込み中に呼び出されます。したがって、ページの読み込み中は常にテキストボックスが空になります。関数内に書き込んでみてください。

function generateQuery(){
  var username = $("#usernameText").val();
  alert(username);
}

書き込むとdocument.ready、ページの読み込み中にcal; lになります。usernameの値が必要な場合は、明示的に呼び出します。

于 2013-03-25T04:01:20.417 に答える
1

値は最初から導き出されます。したがって、ページが最初に読み込まれるとき。

<script type="text/javascript">
        function generateQuery(){
            var username = $("#usernameText").val();
            alert(username);

        }
</script>
于 2013-03-25T04:01:43.077 に答える
0

ここでは、関数を実行するために呼び出す必要のある関数を定義しています。このgenerateQuery();行を使用して関数を呼び出します。

于 2013-03-25T05:07:55.493 に答える
-1

関数をどこで呼び出していますか????

私はあなたが必要だと思います:

<script type="text/javascript">

    $(document).ready(function(){
      generateQuery();


    });     

function generateQuery(){
  var username = $("#usernameText").val();
            alert(username);

        }
</script>
于 2013-03-25T04:01:26.733 に答える