我有一个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
答案 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);
});
如果你想在没有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();
});
}