2017-02-16 100 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。谢谢。 :) –

相关问题