我有一个html表单和一个获取textarea值的js脚本。但是,当我用javascript获取textarea的值时,它返回“undefined”。 我有以下内容:
<!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();
});
我尝试了以下方法来获取textarea的值:
var content = $("#editBox").val();
和
var contents = $("textarea#editBox").val();
textarea的val始终未定义,我尝试过的每种方法都是。
是否有其他方法可以检索textarea的值?
答案 0 :(得分:3)
在已关闭的文档上运行document.write
将打开一个新文档并销毁现有文档的DOM。
这会破坏textarea,因此当您尝试检索它以获取值时,它就不存在。
删除第document.write("hello motto");
行。
使用DOM操作编辑现有文档,而不是编写新文档。