为什么不将全局变量值传递给函数?

时间:2017-02-16 04:59:35

标签: javascript jquery forms

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");
            })
        })
    })

3 个答案:

答案 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");


        })
    })
})

答案 1 :(得分:0)

尝试这样:在点击内部应用函数并将变量声明为globel

  

为什么不工作?

     

因为全局变量包含一些函数。不是       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");
                 })
            })
        })

答案 2 :(得分: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");
                 })
            })
        });
    });