アプリ版:「スタンプのみでお礼する」機能のリリースについて

jQueryでボタンを押したら、フォームのなかに入っているテキストをリセットしたいのですが、これまで、$()[0].reset();のように書いていましたが、jQuery3.2.1を使っているのも原因なのでしょうか?



<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>TEST</title>
<script src="js/jquery-3.2.1.min.js"></script>
</head>
<body>

<script type="text/javascript">
$(function(){
$('#post').click(function(){
alert('test');
$('#title')[0].reset();
$('#content')[0].reset();
});
});
</script>

<div>
タイトル: <input id="title"><br>
本文: <textarea id="content" rows="3"></textarea><br>
<button id="post">投稿</button>
</div>

</body>
</html>

A 回答 (3件)

たとえば、ロード時にdata-として取っておいて


リセットボタンをおすとその値に上書きするとか

<script src="http://ajax.googleapis.com/ajax/libs/jquery/3.2. …
<script>
$(function(){
$('input,textarea').each(function(){$(this).data('default',$(this).val())});
$('[type=button][value=reset]').on('click',function(){
$('#title,#content').val(function(){return $(this).data('default');});
});
});
</script>


<div>
タイトル: <input id="title" value="hoge"><br>
本文: <textarea id="content" rows="3"></textarea><br>
<button type="button" id="post">投稿</button>
<input type="button" value="reset">
</div>
    • good
    • 0
この回答へのお礼

ありがとうござまいす。.data()で初期のデータを保持して、リセットボタンで、戻しているのですね。書き方がとても参考になります。$('#title,#content')のように、2つでも指定できるのですね。知りませんでした。

お礼日時:2017/06/27 16:58

こんにちは



reset()はリセットボタンとほぼ同じ働きをするメソッドで、formエレメントに対してのメソッドのはずです。(個々の要素に対してのメソッドではない)
https://developer.mozilla.org/ja/docs/Web/API/HT …

>jQuery3.2.1を使っているのも原因なのでしょうか?
インデックスで取得した時点で、通常のDOM要素(jQueryオブジェクトではなく)を得ていますのでjQueryは関係なくなっているはずです。

reset()で処理したいのであれば、form要素を設定するか、あるいは個々の要素をクリアしたいだけなら直接クリアすればよろしいのでは。
例えば、
 $('#title').val("");
 $('#content').val("");

>これまで、$()[0].reset();のように書いていましたが~~
ブラウザ依存で動作するものがあるのかも知れませんが、普通は動作しないのではないでしょうか?
    • good
    • 1
この回答へのお礼

ありがとうございます。理解できました。
過去に、reset()でリセットした記憶と、jQueryでできることの処理とが混同していました。

お礼日時:2017/06/27 13:36

そもそもinputやtextareaにresetなんてイベントはないのでは?

    • good
    • 1
この回答へのお礼

ありがとうございます。勘違いしていました。どおりで、調べてもでてこないはずです。

お礼日時:2017/06/27 13:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!