Javascript 在“提交”按钮单击时获取输入框值

Javascript 在“提交”按钮单击时获取输入框值,javascript,jquery,html,css,forms,Javascript,Jquery,Html,Css,Forms,我正在使用ImpactJS引擎开发一个游戏,我已经为我的游戏创建了一个基本表单,其中包含输入框和提交按钮。我可以从输入框中检索值,但我想要的是,当玩家单击submit时,输入框中的任何值都会被获取,我应该能够在submit单击时获取该值。如果值为空,我应该得到一个警告,说“无值或其他”。我想使用这个最终值并将其分配给一个变量,我可以在冲击引擎中的JavaScript文件中使用该变量来跟踪游戏中的输入。我对HTML和CSS都是新手,所以我不知道如何实现这一点 下面是我的HTML/CSS代码,它有一

我正在使用
ImpactJS
引擎开发一个游戏,我已经为我的游戏创建了一个基本表单,其中包含输入框和提交按钮。我可以从输入框中检索值,但我想要的是,当玩家单击submit时,输入框中的任何值都会被获取,我应该能够在submit单击时获取该值。如果值为空,我应该得到一个警告,说“无值或其他”。我想使用这个最终值并将其分配给一个变量,我可以在冲击引擎中的JavaScript文件中使用该变量来跟踪游戏中的输入。我对HTML和CSS都是新手,所以我不知道如何实现这一点

下面是我的HTML/CSS代码,它有一个输入框和一个提交按钮

<!DOCTYPE html>
<html>
<head>
    <title>Impact Game</title>
    <style type="text/css">
        html,body {
            background-color: #333;
            color: #fff;
            font-family: helvetica, arial, sans-serif;
            margin: 0;
            padding: 0;
            font-size: 12pt;
        }
        #problemform {
            display: none;
            width: 300px;
            height: 100px;
        }
        #probleminput {
            position: absolute;
            display: none;
            top: 450px;
            left: 240px;
            height: 50px;
            width: 350px;
        }
        #problemsubmit {
            position: absolute;
            display: none;
            top: 530px;
            left: 623px;
            height: 40px;
            width: 100px;
            padding: 5px 10px 8px 2px;
        }
        #prob_submit_msg {
            width: 30%;
            margin-left: auto;
            margin-right: auto;
            text-align: center;
        }
        #canvaswrapper {
            position: relative;
            height: 768px;
            width: 1024px;
            display: block;
            margin: auto;
            margin-top: 80px;
            vertical-align: middle;

        }
        #canvas {

            left: 0;
            right: 0;
            top: 0;
            bottom: 0;
            margin: auto;
        }

    </style>
    <script type="text/javascript" src="lib/jquery.min.js"></script>
    <script type="text/javascript" src="lib/impact/impact.js"></script>
    <script type="text/javascript" src="lib/game/main.js"></script>
</head>
<body>
<div id="canvaswrapper">
        <canvas id="canvas" width="1024" height="768"></canvas>
    <div id="problemform" class="form-inline">
        <input id="probleminput" class="form-inline" type="text" style="display: inline;"></input>
        <button id="problemsubmit" class="btn" style="display: inline-block;">Submit</button>
    </div>
        <div id ="prob_submit_mssg" style="display: block;"></div>
</div>
</body>
</html>
这就是我现在工作的目的。但现在我希望在单击submit按钮时,输入框中传递的字符串存储在不同的变量中。如何做到这一点


谢谢

为单击提交按钮创建事件侦听器。

在jQuery中:

香草js

然后从输入框中获取值:

在jQuery中:

香草js


如果您只需要有人单击按钮时输入字段的值,则此解决方案可能适用于您:

JS:

试试这个

html:


所以,您只需要为submit按钮设置一个事件,当submit按钮事件发生时,您是否可以从输入中获取值?就这样?是的,基本上要复杂得多。它就像是我们建立的问答界面。因此,每当玩家在文本字段中输入答案并按下submit时,我必须将答案存储在某个变量中。我应该能够在js文件中使用该变量来检查答案是否与数据库(mongodb)中存储的答案匹配。这就是设计。我不知道我是否走上了实现这一目标的正确道路。非常感谢。除了这行代码做什么,我什么都有了$('prob#u submit_mssg').html(formInput)@user3311433抱歉,我使用该行进行测试。如果您查看演示,您将看到它使用输入框中输入的内容更新div。我将编辑我的答案以删除它。好的,谢谢,但是现在我如何获取formInput值,因为它是事件函数中的局部变量。我希望能够在其他函数中使用该值,将其与另一个变量进行比较,该变量存储在数据库define
formInput
的更高范围内。我不知道你的代码是如何设置的,但是在包含函数的某个地方(比如你在问题中列出的那个),或者全局范围就可以了。是的,我做了第一件事,但我不知道ImpactJS引擎有时表现得很奇怪。不过我把它修好了。非常感谢你!您好,有没有办法检查提交按钮是否像标记值一样被单击(真、假)?我尝试在脚本中声明一个全局布尔变量,并在click函数中将其设置为true,但它没有将自身设置为true。有没有办法知道用户是否单击了submit按钮?在click函数之外设置bool变量,它就会工作<代码>变量布尔=真$('sub')。单击(函数(){if(bool){/*something*/bool=false})@JimZilla
ProblemDisplay:function() {
            this.setQuestion('This is a title','this is where the body will go and it will be super long and impossible to read or understand.', 'This is a hint');
            this.isActive = true;
            var form = $("#problemform");
            var inputBox = $("#probleminput");
            var submitButton = $("#problemsubmit");
            form.show();
            inputBox.show();
            submitButton.show();
        },
$('#submit-button').on('click', function() {

});
document.getElementById('submit-button').addEventListener('click', function() {

});
$('#submit-button').on('click', function() {
    var value = $('input').val(); 
    // Do what you want with the value
});
document.getElementById('submit-button').addEventListener('click', function() {
    var value = document.getElementById('input').value;
    // Do what you want with the value
});  
$('#problemsubmit').on('click', function (event) {
    event.preventDefault();
    var formInput = $('#probleminput').val();
});
<input id="probleminput" class="form-inline" type="text" style="display: inline;">   </input>
<button id="problemsubmit" class="btn" style="display: inline-block;">Submit</button>

<a id='testop' ></a>
var form = $("#problemform");
var inputBox = $("#probleminput");
var submitButton = $("#problemsubmit");
submitButton.click(function(){
var getval = ($("#probleminput").val()?$("#probleminput").val():alert('please fill the   text field'))
$('#testop').text(getval);  
});