2017-02-16 9 views
1

var ViewId = $("#txt").val(); - テキストボックスから値を取得します。 IDはtxtです。しかし、入力された値は関数に渡されません。値は""とします。そして、テキストボックスに数値を追加します。 3つの機能を1つずつ追加すると機能します。しかし、グローバルとして宣言されたときはうまくいきません。グローバル変数の値を関数に渡さないのはなぜですか?

var ViewId = $("#txt").val(); 

    $("#btn2").click(function() { 
     var msg = { "Message011": $("#txt1").val() } 

     tv.login().done(function() { 
      tv.createRecord(ViewId, msg).done(function() { 
       alert("Data Added"); 
      }) 
     }) 
    }) 
+2

あなたのHTMLも追加できますか?価値がないか、そうでない場合はエラーがあるかどうかを判断するのは難しいです。 – thesublimeobject

+0

'View'イベントハンドラ内で' var ViewId = $( "#txt")。val();を移動します。 – Tushar

答えて

0

次のように試してみてください:クリック内部で関数を適用し、globel

として変数を宣言するのはなぜ動作しませんか?

グローバル変数は、いくつかの機能が でない.its含まれているので、その変数にデータを保存するためにいくつかのアクションを必要とする variable.Itに日付を格納する文書準備状態を持っているstring.SO。

var ViewId ="" 
     $("#btn2").click(function() { 
     ViewId = $("#txt").val(); 
     var msg = { "Message011": $("#txt1").val() } 
      tv.login().done(function() { 
      tv.createRecord(ViewId, msg).done(function() { 
       alert("Data Added"); 
       }) 
      }) 
     }) 
+0

それを得ました。ありがとうございます –

1

clickイベント内のviewidの値を取得します。 それ以外の場合は、不定期になります。

$("#btn2").click(function() { 
    var ViewId = $("#txt").val(); 
    var msg = { "Message011": $("#txt1").val() } 

    tv.login().done(function() { 

     tv.createRecord(ViewId, msg).done(function() { 

      alert("Data Added"); 


     }) 
    }) 
}) 
+0

OPは空の文字列を取得していますが、未定義ではありませんが、それはおそらくページが最初に読み込まれたときから値を取得していて、クリック時の値ではないので、 () 'コールが適切な解決策です。 – nnnnnn

+0

働いています。ありがとうございました:) –

+0

答えの仲間を受け入れる –

0

グローバルスコープであなたの変数を宣言します。

var ViewId =""; 
    jQuery(function(){ 
    $("#btn2").click(function() { 
     ViewId = $("#txt").val(); 
     var msg = { "Message011": $("#txt1").val() } 
      tv.login().done(function() { 
      tv.createRecord(ViewId, msg).done(function() { 
       alert("Data Added"); 
       }) 
      }) 
     }); 
    }); 
+0

このコードでは、 'ViewId'は一度だけ読み込まれるので、クリックハンドラ内でローカルに宣言できます。 – nnnnnn

+0

Soloved。ありがとうございました。 :) –

関連する問題