2

テキストエリアと送信ボタンを含む HTML フォームがあります。テキストエリアの値を取得する JS スクリプト。

私が直面している問題は、テキストエリアにテキストを入力して送信を押すと、テキストエリアの値が空になることです。ただし、テキストをテキストエリアにハードコードすると、ハードコードされた値が返されます。ハードコードされた値を消去し、ハードコードされた値を削除して自分で入力すると、ハードコードされた値が返されます。

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(); 

});

上記のテキストエリアに「タイプ」がプリロードされていることに注意してください。それが戻り値です。空のままにし、フォームに独自のテキストを入力して送信すると、コンソール ログのコンテンツの値が空と表示されます。

私もこれを試しました(テキストエリアIDを使用)

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

問題は POST にあると思います。Enter キーを押すと、入力したテキストが "type" (事前に読み込まれたテキスト) に置き換えられるためです。

POSTはそれを妨害できますか? 他にどのように値を取得できますか?

4

1 に答える 1