将值从文本框传递到另一个函数

时间:2014-08-08 18:19:52

标签: javascript jquery html

我有一个html文本框,并使用以下代码从中获取值:

$('#getTextBoxValue').on("click", function(){
var value = $("#textbox1").val();
});

然后我试图将该值传递给另一个函数

function loadPdf(pdfPath) {
    var pdf = PDFJS.getDocument(pdfPath);
    return pdf.then(renderPdf);
}

loadPdf(value);

但价值没有通过。然后我尝试执行以下操作:

$('#getTextBoxValue').on("click", 
    function(){
      var value = $("#textbox1").val();
      alert('The Value in Textbox is '+value);
});

查看是否显示了该值,但这也没有效果(没有得到任何输出)

编辑:我在控制台中收到错误:

ReferenceError: $ is not defined

如果我删除$,则会显示('#getTextBoxValue).on is not a function

4 个答案:

答案 0 :(得分:1)

$是对jQuery的引用。如果包含jQuery,这对我有用:

<input id="textbox1"></input>
<button id="getTextBoxValue">Get value</button>

$('#getTextBoxValue').on("click", 
    function(){
        var value = $("#textbox1").val();
        alert('The Value in Textbox is '+value);
     });

JSFiddle example

如果你想在没有jQuery的情况下这样做,请使用document.getElementById("textbox1").value;并在内联或通过普通的javascript添加onclick:

document.getElementById("getTextBoxValue").onclick = function(){
    var value = document.getElementById("textbox1").value;
    alert('The Value in Textbox is '+value);
};

让它工作后,只需用loadPdf(value)替换警报; var value是onclick函数的本地函数,因此必须在该函数内部访问或使其成为全局函数。

答案 1 :(得分:1)

一旦你在页面上加载了jQuery,就应该像在click事件中调用helper函数一样简单。

$('#getTextBoxValue').on("click", function(){
 loadPdf( $("#textbox1").val() );
});

答案 2 :(得分:0)

原因在于范围。

您正在使用var。

在函数中定义变量
$(document).ready(function() {

  var value;
  var pdf;
  var value;

  /* Then do your functions. This will make then global. 
  When you type then within your functions do not put var in front of them */
});

答案 3 :(得分:0)

您已将其标记为javascript,但您用于获取值并绑定函数的代码是jQuery。你得到的错误是告诉你没有“$”到jQuery的映射。如果您想确保拥有引用集,可以将$替换为字符串“jQuery”,以便$('someselector')变为jQuery('someselector')

但是,这可能只是您正在使用的控制台。您有另一个错误可能是问题。你有这个:

$('#getTextBoxValue').on("click", function(){
    var value = $("#textbox1").val();
});

在此处,您的值在回调中是本地范围的。除非你在函数退出之前对它做了什么,否则你会完全失去它。如果您打算稍后使用它,则必须通过将其置于任何函数定义之外来对其进行全局范围。

var value;
...
function someFunction(){
    ...
    $('#getTextBoxValue').on("click", function(){
        value = $("#textbox1").val();
    });
}