2

我有一个包含文本区域和提交按钮的 HTML 表单。和一个 JS 脚本,它采用 textarea 的值。

我面临的问题是当我在 textarea 中输入文本并点击提交时,textarea 值为空。但是,如果我将文本硬编码到 textarea 中,则会返回硬编码值。如果我删除硬编码值并删除硬编码值并输入我自己的值,仍会返回硬编码值。

HTML

<!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() {
var message = "start js";
console.log(message);

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

if(contents === 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(obj2.id);
console.log(obj2.content);
});
}

$(document).ready(function () {

 add(); 

});

注意上面的文本区域是如何预加载“类型”的。这就是返回值。如果我将其留空,请在表单中输入我自己的文本并点击提交,控制台日志显示内容值为空。

我也试过这个(使用textarea id)

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

我假设问题出在 POST 上。因为当我按回车时,我输入的文本被替换为“类型”(预加载的文本)。

POST可以干扰它吗?我还能如何检索价值?

4

1 回答 1

0

我不确定实际问题,但过去几天我注意到了一些奇怪的事情。console.log()在像这样的少数情况下不能在 chrome 中工作。可能是萤火虫?无论如何,替换console.log()alert并删除了默认值textarea

更新小提琴:http: //jsfiddle.net/eVmQ9/2/

这似乎适用于 chrome 和 firefox。

于 2013-10-04T18:05:16.060 回答