0

テキストエリアの値を取得する html フォームと js スクリプトがあります。ただし、javascript を使用してテキストエリアの値を取得すると、「未定義」が返されます。私は次のものを持っています:

<!DOCTYPE html>
<html>

<head>
<meta charset="UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="viewport" content="width=device-width, initial-scale=1"> 

<script src="js/jquery/jquery-1.9.1.min.js"></script>

<script src="contentForm.js"></script>
</head>

<body>
<form method="post" >
<textarea name ="editor" id="editBox" rows="5" cols="2">type</textarea>
<p><input type="submit" id="submit" value="Submit"></p>
</form>
</body>
</html>

JS

function add() {
$("#submit").click(function() {
document.write("hello motto");
var message = "start js";
console.log(message);
var contents = $("#editBox");
var a = contents.val();

if(a === undefined) {
  console.log("contents undefined");
}
console.log(contents);
var item = {"id":"12", "content": contents};
var obj = JSON.stringify(item);
var obj2 = JSON.parse(obj);
console.log("you have arrived"); 
document.write(obj2.id);    
});
}

$(document).ready(function () {

add();  

});

テキストエリアの値を取得するために次のことを試しました。

var content = $("#editBox").val();

var contents = $("textarea#editBox").val();

textarea の val は、私が試した各メソッドで常に未定義です。

テキストエリアの値を取得する別の方法はありますか?

4

1 に答える 1

3

閉じたドキュメントで実行document.writeすると、新しいドキュメントが開き、既存のドキュメントの DOM が破棄されます。

これによりテキストエリアが破棄されるため、値を取得するためにテキストエリアを取得しようとすると、存在しません。

行を削除しますdocument.write("hello motto");

新しいドキュメントを作成する代わりに、 DOM 操作を使用して既存のドキュメントを編集します。

于 2013-10-04T16:08:45.073 に答える