2017-02-16 134 views
1

var ViewId = $("#txt").val(); - 我從文本框中獲得價值。該ID是txt。但輸入的值不會傳遞給函數。它只能通過價值""。我爲該文本框添加一個數字。當它逐個添加所有三個功能時,它就可以工作。但是,當宣佈爲全球時,它不起作用。爲什麼不將全局變量值傳遞給函數?

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

在'click'事件處理程序中移動'var ViewId = $(「#txt」).val();''。 – Tushar

回答

0

嘗試這樣的:與應用功能點擊裏面和變量聲明爲globel

爲什麼不工作?

因爲全局變量包含一些功能。其不 string.SO其具有文檔準備狀態來存儲日期 variable.It需要一些動作來將數據存儲到變量。

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

獲取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說他們得到一個空字符串,不是未定義的,但仍然可能是因爲它從頁面首次加載時獲得的值,而不是點擊時的值,所以移動'.val ()'call是正確的解決方案。 – nnnnnn

+0

它工作。謝謝:) –

+0

接受答案bro –

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'只讀取一次,所以可以在click處理程序中進行本地聲明。 – nnnnnn

+0

Soloved。謝謝。 :) –

相關問題