如何显示从用户输入获得的 jquery 变量?
How do I display a jquery variable obtained from user input?
我希望能够在向表单中输入一些文本后单击 submit
按钮,然后单击 results
按钮显示我刚刚输入的内容。
似乎 titles
变量在 function onClick(event)
函数中是 "stuck"。我如何"get it out?"
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<body>
<script type="text/javascript">
$(document).ready(function() {
$(function() {
$('#submit').click(onClick);
});
function onClick(event) {
var titles = $('input[name^=titles]').map(function(idx, elem) {
return $(elem).val();
}).get();
window.alert(titles); //it displays the titles here
}
$("#result").click(function() {
window.alert('x');
window.alert(titles); //but not here
$("p").text(titles[0]);
});
});
</script>
<p>display results here</p>
<input name="titles[]">
<input name="titles[]">
<button id="submit">submit</button>
<button id="results">results</button>
</body>
这可能已经得到解答,但我不知道足够多的行话来有效地搜索答案。我还使用了这里的一些代码,因为我想接受两个字符串输入:Get values from multiple inputs jQuery
首先,您在第二个 click
活动的选择器中有错字。应该是#results
,而不是#result
问题的核心是,titles
变量超出了第二个 click
事件的范围。
您可以通过在任一函数之外声明它来解决这个问题。这很好让你在任何一个中引用它。
var titles = [];
function onClick(event) {
titles = $('input[name^=titles]').map(function(idx, elem) {
return $(elem).val();
}).get();
window.alert(titles);
}
$("#results").click(function() {
window.alert(titles);
$("p").text(titles[0]);
});
嗨,奥斯汀,当你点击提交时 jquery 调用你的函数 onClick
但此功能与您在此注册的功能无关
$("#result").click(function() { // resultCallback
所以当你定义变量时
var titles
如您所说,此变量绑定(作用域)到函数 onClick,您无法从 resultCallback 访问它。另外它是完全异步的。单击结果按钮(即调用 resultCallback)不是单击提交按钮(即调用 onClick),因此不会加载变量标题。
如果您想检索标题,请创建一个内部包含
的函数 getTitles
return $('input[name^=titles]').map(function(idx, elem) {
return $(elem).val();
}).get();
并从您的函数中调用它。
我希望能够在向表单中输入一些文本后单击 submit
按钮,然后单击 results
按钮显示我刚刚输入的内容。
似乎 titles
变量在 function onClick(event)
函数中是 "stuck"。我如何"get it out?"
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<body>
<script type="text/javascript">
$(document).ready(function() {
$(function() {
$('#submit').click(onClick);
});
function onClick(event) {
var titles = $('input[name^=titles]').map(function(idx, elem) {
return $(elem).val();
}).get();
window.alert(titles); //it displays the titles here
}
$("#result").click(function() {
window.alert('x');
window.alert(titles); //but not here
$("p").text(titles[0]);
});
});
</script>
<p>display results here</p>
<input name="titles[]">
<input name="titles[]">
<button id="submit">submit</button>
<button id="results">results</button>
</body>
这可能已经得到解答,但我不知道足够多的行话来有效地搜索答案。我还使用了这里的一些代码,因为我想接受两个字符串输入:Get values from multiple inputs jQuery
首先,您在第二个 click
活动的选择器中有错字。应该是#results
,而不是#result
问题的核心是,titles
变量超出了第二个 click
事件的范围。
您可以通过在任一函数之外声明它来解决这个问题。这很好让你在任何一个中引用它。
var titles = [];
function onClick(event) {
titles = $('input[name^=titles]').map(function(idx, elem) {
return $(elem).val();
}).get();
window.alert(titles);
}
$("#results").click(function() {
window.alert(titles);
$("p").text(titles[0]);
});
嗨,奥斯汀,当你点击提交时 jquery 调用你的函数 onClick 但此功能与您在此注册的功能无关
$("#result").click(function() { // resultCallback
所以当你定义变量时
var titles
如您所说,此变量绑定(作用域)到函数 onClick,您无法从 resultCallback 访问它。另外它是完全异步的。单击结果按钮(即调用 resultCallback)不是单击提交按钮(即调用 onClick),因此不会加载变量标题。
如果您想检索标题,请创建一个内部包含
的函数 getTitlesreturn $('input[name^=titles]').map(function(idx, elem) {
return $(elem).val();
}).get();
并从您的函数中调用它。