Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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在按下enter键时设置变量值_Javascript_Jquery_Html - Fatal编程技术网

javascript在按下enter键时设置变量值

javascript在按下enter键时设置变量值,javascript,jquery,html,Javascript,Jquery,Html,我对JavaScript非常陌生,但我确信当在HTML文本输入框中按enter键时,必须有一种简单的方法来设置变量值 <input type='text' name='userEntry' class='inner-choice-entry' placeholder='Type your answer here' /> 以下内容将用于向用户显示消息并提示他们输入值: displayedLine = 'Please enter your name.'; $('.inner-conte

我对JavaScript非常陌生,但我确信当在HTML文本输入框中按enter键时,必须有一种简单的方法来设置变量值

<input type='text' name='userEntry' class='inner-choice-entry' placeholder='Type your answer here' />
以下内容将用于向用户显示消息并提示他们输入值:

displayedLine = 'Please enter your name.';
$('.inner-content-text').html(displayedLine);
displayedChoiceLine = 'Your name is:';
$('.inner-choice-text').html(displayedChoiceLine);
determineUserChoice();
charName = userEntry;
$('.inner-content-sidebar-text-playername').html(charName);
就我的一生而言,我不知道如何使用函数'DeterminuteUserChoice'将'userEntry'变量设置为用户在按下enter键时输入的任何值。可能有一个更简单的方法来实现这一点。我的目标是向用户提出一系列问题,然后在按下enter键后显示在页面上,然后再显示其他消息。

您可以执行以下操作:

<input onkeypress="determineUserChoice(event)" type='text' name='userEntry' class='inner-choice-entry' placeholder='Type your answer here' />


但是要注意,
document.getElementsByName(…)
返回一个包含给定名称的所有元素的数组。使用
document.getElementById(…)
返回页面中唯一具有给定
id
的元素(因为id在页面中是唯一的)。

document.getElementsByName
返回
节点列表,而不是单个元素。在获取元素的值之前,需要对其进行索引以获取元素,因此它应该是:

userEntry = document.getElementsByName('userEntry')[0].value;
我假设您正在某个地方用
addEventHandler
绑定处理程序,但没有显示该代码。

您可以执行以下操作

在文本框上附加一个按键关闭事件的事件处理程序。我使用了它的
class='internal-choice-entry
来引用它

$('.inner-choice-entry').keydown(determineUserChoice);
注意:如果您同意向输入字段添加
id
属性,则可以使用
$(“#userEntry”)
而不是
$('.internal choice entry')

修改
determineUserChoice
函数,如下所示。这是为了克服Thierry J的回答中提到的问题。
getElementsByName
方法返回具有给定名称的所有元素的数组。使用
getElementsByName('userEntry')[0]。value
将仅获取第一个具有
name=userEntry
的此类元素的值

function determineUserChoice(e) {
    if (e.which == 13 || e.keyCode == 13) {
        console.log('ok');
        userEntry = document.getElementsByName('userEntry')[0].value; //note the change here.
        console.log(userEntry);
    }
};
注意:同样如上所述,如果在字段中添加
id
,则可以获得如下值

userEntry = document.getElementById('userEntry').value;

如何将函数绑定到键盘相关事件?在
determinuteUserChoice(e)
中的变量
e
设置在哪里?
userEntry = document.getElementById('userEntry').value;