私はゲームを作っているのですが、最初にあなたの名前を聞かれます。この名前を変数として保存したいのです。
<form id="form" onsubmit="return false;">
<input style=position:absolute;top:80%;left:5%;width:40%; type="text" id="userInput">
<input style=position:absolute;top:50%;left:5%;width:40%; type="submit" onclick="name()">
</form>
そしてこれがjavascriptの部分です。
function name()
{
var input = document.getElementById("userInput");
alert(input);
}
name`はJavaScriptでは予約語なので、うまくいきません。関数名を別のものに変更してください。
http://www.quackit.com/javascript/javascript_reserved_words.cfm を参照してください。
<form id="form" onsubmit="return false;">
<input style="position:absolute; top:80%; left:5%; width:40%;" type="text" id="userInput" />
<input style="position:absolute; top:50%; left:5%; width:40%;" type="submit" onclick="othername();" />
</form>
function othername() {
var input = document.getElementById("userInput").value;
alert(input);
}
まず、マークアップをよりポータブル/再利用可能にします。また、ボタン'のタイプを onsubmit
属性ではなく 'button'
にしています。フォームがサーバーとやり取りする必要がある場合は、type
属性をsubmit
に切り替えることができます。
<div class='wrapper'>
<form id='nameForm'>
<div class='form-uname'>
<label id='nameLable' for='nameField'>Create a username:</label>
<input id='nameField' type='text' maxlength='25'></input>
</div>
<div class='form-sub'>
<button id='subButton' type='button'>Print your name!</button>
</div>
</form>
<div>
<p id='result'></p></div>
</div>
次に、ユーザー名を変数に取り出す一般的な関数を書きます。この関数は、ユーザ名を保持する変数に少なくとも 3 文字が含まれているかどうかをチェックします。これは好きな定数に変更することができます。
function getUserName() {
var nameField = document.getElementById('nameField').value;
var result = document.getElementById('result');
if (nameField.length < 3) {
result.textContent = 'Username must contain at least 3 characters';
//alert('Username must contain at least 3 characters');
} else {
result.textContent = 'Your username is: ' + nameField;
//alert(nameField);
}
}
次に、ボタンのイベントリスナーを作成しました。一般的に、インラインのjsコールを持つことは悪い習慣とされています。
var subButton = document.getElementById('subButton');
subButton.addEventListener('click', getUserName, false);
ここでは、動作する、軽いスタイルのデモを紹介します。