質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.04%

メモ帳を作っているが、テキストエリア内にデフォルトで時刻をのせる方法が分からない

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 2,104

score 17

前提・実現したいこと

html,css,jquery,javascriptを活用してメモ帳を作成しており、テキストエリアにデフォルトで日時時間の情報が入るようにしたい(メモに時間情報を記録させたい)

発生している問題・エラーメッセージ

javascriptで日時を表示し、それをテキストエリアに乗せるようなコードを書きたいのですが、調べてもやり方がわかりませんでした。jqueryを使っているので、javascriptの記述をどう入れたらいいか、よくわかっておりません。(恐らく分かっている人からすると一瞬で解決するレベルです)

エラーメッセージ


Google Chromeでconsoleをみても、特にエラーはありませんでした。試した方法が正しくないだけと思われます。

該当のソースコード

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Memo</title>
<script src="js/jquery-2.1.3.min.js"></script>
<link rel="stylesheet" href="css/sample.css">
</head>
<body>

  <header>
   <h1>Programming Study</h1>
   <select id="memos">
   <option select value="page1">page1</option>
  <option select value="page2">page2</option>
      <option select value="page3">page3</option>
      <option select value="page4">page4</option>
      <option select value="page5">page5</option>
      <option select value="page6">page6</option>
      <option select value="page7">page7</option>
      <option select value="page8">page8</option>
      <option select value="page9">page9</option>
      <option select value="page10">page10</option>
</header>
<main style="display:none;"> 
<textarea id="text_area" placeholder="キーワードを入力">'document.write(now.toLocaleString())'</textarea>
</main>

<script>

$(document).ready(function(){

  $("#save").on("click",function(){
    var pages = $("#memos").val();
    var value = $("#text_area").val();
    localStorage.setItem(pages,value);
    alert("保存しました");
  });

  $("#clear").on("click",function(){
    var pages = $("#memos").val();
    var value = $("#text_area").val(); 
    localStorage.removeItem(pages,value);
        alert("削除しました");
    $("#text_area").val("");
  });

  $("#memo_select").on("click",function(){
      var memos = $("#memos").val();
      var value = localStorage.getItem(memos);
      $("#text_area").val(value);
      $("#text_area").css({
      "color":"#ff0033",
 });


 $("main").show();

});

  $("#page_delete").on("click",function(){
      $("#text_area").val("");
});

});

    var now = new Date();

</script>
</body>

</html>

試したこと

課題に対してアプローチしたことを記載してください
javascriptで日時を取得し、'document.write(now.toLocaleString())'をtextureのタグ内に入れて表示できないかトライしましたがダメでした。

補足情報(言語/FW/ツール等のバージョンなど)

より詳細な情報

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • kei344

    2016/07/28 19:57

    コードはコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「</>」ボタンを押すとコードブロックになります。

    キャンセル

  • KyoheiTsuno

    2016/07/28 20:49

    コードブロックを入れました。ご指摘ありがとうございます!

    キャンセル

  • kei344

    2016/07/28 22:03

    「```ここに言語を入力」から「ソースコードを書いてください 」が不要です。記入エリアの右部分あたりにリアルタイムに結果が表示されていると思うので、そこを見ながら調整してください。

    キャンセル

回答 2

checkベストアンサー

0

こんにちはm(_ _)m

<textarea>...</textarea>
に直接書き込んでしまうと、テキストエリア内にそのまま表示されてしまいますので、

$(document).ready(function(){
 $("textarea").val(now.toLocaleString())
 ...略...
});

JSからテキストエリアのvalueを操作したい場合は
$("textarea").val()
で、val()の中に表示させたい内容を書くといいですよ^^

テキストエリアに限らず、<input type="text">などにも応用可能です♪

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/28 21:19

    不躾な質問ながら、ご回答頂きましてありがとうございます。手法は理解できました。
    しかしながら、私のプログラミングにおける基礎的な知識、能力が欠如しておりまして...

    $("textarea").val(now.toLocaleString())
    ...略...
    });

    こちらを以下のように使った所、次のエラーが出ました。。

    $(document).ready(function(){

    $("#text_area").val(now.toLocaleString()); ←追加分
    以下、記載のコードと同様になります。

    <エラー内容>
    Uncaught ReferenceError: now is not defined(anonymous function)
    html:67j @ jquery-2.1.3.min.js:2fireWith @ jquery-2.1.3.min.js:2ready @ jquery-2.1.3.min.js:2I @ jquery-2.1.3.min.js:2

    恐らく些細な文法ミスだと予測しますが... 自力で色々試してみても上手くいかず詰まっています。教えて頂いた事を実践したいので、頑張って解決します。

    キャンセル

  • 2016/07/28 22:46

    To: KyoheiTsunoさん
    下記のようにしてみてください。

    $(document).ready(function(){
    var now = new Date();
    $("#text_area").val(now.toLocaleString());

    キャンセル

  • 2016/07/28 22:58 編集

    度々恐れ入ります。ご回答頂きましてありがとうございます。
    コンソールエラーは消えましたが、テキストボックスに表示はされませんでした...

    placeholder="キーワードを入力" の部分を削除してリトライしてみても
    何も出てきませんでした。html内のscript記述位置が関係しているかもしれませんので、
    入れ替えを試してみます。

    キャンセル

0

2点、指摘があります。

  1. </select> が無い
  2. <main style="display:none;"> でテキストエリアを非表示にしている

動くサンプル:https://jsfiddle.net/48tas7z8/1/

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/29 04:42

    コメントありがとうございます!
    1について、質問欄では入ってなかったですが、実物ではつけていました。
    2が問題だったようで、display:noneを外した所、ちゃんと表示させる事ができました!

    ただ、やりたかった機能がまだ未完全です。セレクトボックスでページを開く度に、日付が表示されてそれを記録できるという事でしたので、自分で調べたり教えてもらいながらブラッシュアップしていきたい次第です。

    初心者で些細な事も分からない私を助けて頂きまして、本当にありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.04%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る