Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将HTML文本字段中的输入永久存储到jQuery变量中? jQuery HTML 提交 左尝试次数:6次 输入的值是?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何将HTML文本字段中的输入永久存储到jQuery变量中? jQuery HTML 提交 左尝试次数:6次 输入的值是?

Javascript 如何将HTML文本字段中的输入永久存储到jQuery变量中? jQuery HTML 提交 左尝试次数:6次 输入的值是?,javascript,jquery,html,Javascript,Jquery,Html,我已经在上面提供了我的HTML和jQuery代码片段。我试图在按下提交按钮后,将输入到文本字段中的数字存储到名为guess的jQuery变量中 发生以下情况: 当我在字段中输入一个数字并按submit时,我会收到一个警报,显示我输入的值。关闭事件后,我收到另一个警报,该警报应显示'guess'的值,该值未定义 即使我在click事件之外声明了变量guess,也会发生这种情况。这是为什么?我如何永久存储该值?该'guess'变量不在click事件处理程序中,但在ready事件处理程序中;因此,在加

我已经在上面提供了我的HTML和jQuery代码片段。我试图在按下提交按钮后,将输入到文本字段中的数字存储到名为
guess
的jQuery变量中

发生以下情况: 当我在字段中输入一个数字并按submit时,我会收到一个警报,显示我输入的值。关闭事件后,我收到另一个警报,该警报应显示'guess'的值,该值未定义


即使我在click事件之外声明了变量
guess
,也会发生这种情况。这是为什么?我如何永久存储该值?

该'guess'变量不在click事件处理程序中,但在ready事件处理程序中;因此,在加载页面时,第二个警报框将只显示一次。然后它将是未定义的。单击事件将在稍后发生。

该'guess'变量不在单击事件处理程序中,但在就绪事件处理程序中;因此,在加载页面时,第二个警报框将只显示一次。然后它将是未定义的。单击事件将稍后发生。

函数:
$(“#值”)。文本(猜测)
不正确。在这种情况下,请将其替换为:

$("#value").empty().append(guess);
你应该等一等。为了提交()

请给我反馈。享受:)

函数:
$(“#值”)。文本(猜测)
不正确。在这种情况下,将其替换为:

$("#value").empty().append(guess);
你应该等一等。为了提交()

请给我反馈。享受:)

您正在使用
元素请求用户输入。表单的问题在于,当它提交时,它想要离开(或刷新)页面。当页面刷新时,所有js都将丢失

简单的解决方法:不要使用表单(可以使用DIV)

或者,您可以使用
event.preventDefault()
,告诉表单不要执行默认的提交操作:

HTML:

<div id='game'>
    <form id='user-input'>
        <input type='text' id='guess-value' placeholder='1-100'></input>
        <button id='submit'>Submit</button>
    </form>
     <h4 id='guess-count'>Attempts left: <span id="attempts">6</span></h4> 
</div>

<h4 id='checker'>The value entered is <span id="value">?</span></h4>

<input type="button" id="myButt" value="Show Value" />
var guess;
$('#submit').on("click", function (evnt) {
    guess = $('#guess-value').val();
    $("#value").text(guess);
    alert(guess);
    evnt.preventDefault();
});

$('#myButt').click(function(){
   alert( guess ); 
});
进一步说明:

请注意,您发布的代码中的第二个
警报(猜测)
将在document.ready后立即出现。我是说,马上,只要DOM准备好。在将任何东西放入之前,猜测。这就是它返回未定义的的原因。

这可能不是你想要的。上面的代码示例添加了一个按钮,允许您在需要时查看该变量的内容。

您正在使用元素请求用户输入。表单的问题在于,当它提交时,它想要离开(或刷新)页面。当页面刷新时,所有js都将丢失

简单的解决方法:不要使用表单(可以使用DIV)

或者,您可以使用
event.preventDefault()
,告诉表单不要执行默认的提交操作:

HTML:

<div id='game'>
    <form id='user-input'>
        <input type='text' id='guess-value' placeholder='1-100'></input>
        <button id='submit'>Submit</button>
    </form>
     <h4 id='guess-count'>Attempts left: <span id="attempts">6</span></h4> 
</div>

<h4 id='checker'>The value entered is <span id="value">?</span></h4>

<input type="button" id="myButt" value="Show Value" />
var guess;
$('#submit').on("click", function (evnt) {
    guess = $('#guess-value').val();
    $("#value").text(guess);
    alert(guess);
    evnt.preventDefault();
});

$('#myButt').click(function(){
   alert( guess ); 
});
进一步说明:

请注意,您发布的代码中的第二个
警报(猜测)
将在document.ready后立即出现。我是说,马上,只要DOM准备好。在将任何东西放入之前,猜测。这就是它返回未定义的的原因。


这可能不是你想要的。上面的代码示例添加了一个按钮,允许您在需要时查看该变量的内容。

第二个警报在提交之前显示,而不是在提交之后显示;这仅仅是因为页面重新加载,它看起来更晚了。如果您没有提交,则每次单击只会看到一个警报,在ready()时会看到一个警报,该警报将显示未定义,因为在启动时尚未设置值。这是什么意思?因为当加载或卸载页面时,javascript变量中的任何数据都将丢失。我想存储输入的数字,以便确定它是否等于某个随机数。这是一个猜谜游戏。第二个警报在提交前显示,而不是提交后显示;这仅仅是因为页面重新加载,它看起来更晚了。如果您没有提交,则每次单击只会看到一个警报,在ready()时会看到一个警报,该警报将显示未定义,因为在启动时尚未设置值。这是什么意思?因为当加载或卸载页面时,javascript变量中的任何数据都将丢失。我想存储输入的数字,以便确定它是否等于某个随机数。这是一个猜谜游戏。是的,当页面加载且未定义时,会显示第二个警告框。然后单击事件中的警报框显示我按submit时在框中输入的值。关闭后,第二个警报框再次显示,值未定义,这意味着我输入框中的值未存储。是,当页面加载且未定义时,将显示第二个警报框。然后单击事件中的警报框显示我按submit时在框中输入的值。关闭后,第二个警报框再次显示,值未定义,这意味着我输入框中的值未存储。哇!我有生以来第一次看到
evnt.preventDefault()不是函数正文中的第一行!!哇!老实说,我经常把它作为函数的第一行。。。所以我不会忘记给它编码。。。如果其他人有DRAM的大脑(像我一样),那么这也许可以解释为什么它通常是第一个。哇!我有生以来第一次看到
evnt.preventDefault()不是函数正文中的第一行!!哇!老实说,我经常把它作为函数的第一行。。。所以我不会忘记给它编码。。。如果其他人(像我一样)的大脑有DRAM,那么这也许可以解释为什么它通常是第一个。B'jour-伟大的贡献,Jean,但并不完全准确。在重新填充跨距之前,无需先清空跨距<代码>$(“#值”)。文本(猜测)将覆盖任何现有内容。试试看,不是也一样吗