2017-02-11 24 views
0

我正在创建一个网站游戏,目前我正在努力寻找一些我将命名为“对话”的东西。提交一个没有表格的输入值

最初我试图通过创建一个表单元素来解决这个问题,但是单击输入或提交它最终会导致页面刷新,从而导致所有内容都被破坏。

所以我用inpute类型的文本没有形式,看起来像这样:

You are 
<input type="text" id="dead"> 
<input type="submit" onclick="dead()"> 

和死的功能目前正在寻找这样的,以后它是一定值时会检查,如果该值为true它会运行另一个代码:

var talk = document.getElementById("dead").value; 

function dead() { 
alert(talk); 
} 

我不知道如何从一种形式保存输入,所以它会被JS被检测到,然后用作布尔检查参数。我怎么解决这个问题?如果有一种方法可以使用表单标签而不刷新也可以工作的页面。

回答

0

您可以处理表单的提交事件是这样的:

document.getElementById('yourFormId').onsubmit = function(e) { 
    // your code goes here... 

    e.preventDefault(); // this will prevent the default operation of your form within this event 
    return false; 
} 

或者创建一个功能:

function handleForm(e) { 
    // your code goes here... 

    e.preventDefault(); 
    return false; 
} 

并添加到您的表单标签:

<form onsubmit="return handleForm(this);"> 
+0

谢谢,这似乎工作!你能解释一下,当把“e”放在功能括号中然后e.preventDefault()时会发生什么。为什么“e”?它可能是什么?我假设preventDefault()是JS中的一个现有函数。 –

+0

'e'只是您传递给回调函数的一个参数,稍后在函数体中使用它。 “e”将是事件的缩写。当然,你可以使用ie。 '事件',或者任何你想要的东西,如果它不是[JavaScript保留字](http://www.javascripter.net/faq/reserved.htm)。 – omerowitz

+0

明白了,有道理,谢谢! –

0

为了能够在不刷新页面的情况下发送一些值,您可以使用Asynchronous JavaScript + XML(AJAX),并且如果您正在使用pur e Javascript没有一些框架,你可以看到关于Ajax的很好的文档。 但当然,我建议使用一些框架,如Jquery,使您的作品更容易

+0

我试图抛光我的技能,而不使用更多的框架和库。 –