🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1751閲覧

複数のinputを別々にリセットしたい

keraker

総合スコア46

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/02/17 03:14

編集2021/02/17 03:17

inputをメインとオプションの二種類作って、オプションをリセットしてもメインに影響が出ないようにしたいです。
そのため、formではなくinputでリセットする方法を探しています。

<body> <form id="form1" method="POST" > <input type="text" name="text1" id="text1" /> <input type="submit" value="submit" /> </form>   <form id="option"> <input type="text" class="option" name="text2" id="text2" form="form1" /> <input type="radio" class="option" name="radio" id="radio" form="form1" /> <input type="checkbox" class="option" name="checkbox" id="checkbox" form="form1" />   </form> </body>

text2以下のinputにしか影響がでないようにformを分けると、
optionへのreset()が動作しません。

<form id="option">をはずすとreset()に相当する方法が見つかりませんでした。
$('input.option').each(function() { $(this).checked = $(this).defaultChecked; });

例えばこのようにするとundifinedが返ります。

どなたかいいやり方をご存知ではありませんか。
よろしくお願いします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

formが別れている時点で送られるパラメータも違うので
リセットを連携する意味があまりないように思いますが

javascript

1<script> 2$(function(){ 3 $('#reset').on('click',function(){ 4 $(':checkbox').prop('checked',function(){return $(this).prop('defaultChecked');}); 5 }); 6}); 7</script> 8<input type="checkbox" checked> 9<input type="checkbox" > 10<input type="button" id="reset" value="reset">

投稿2021/02/17 03:22

yambejp

総合スコア116694

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

keraker

2021/02/17 04:07

ありがとうございます。無事、機能しました。 scriptの書き方が良くなかったようですね。 ほかの場所をクリックしたら最初のスクリプトが動くように書いていたのですが、 よろしければ自分が書いたものは何を意味しているのか、簡単でいいので教えてはいただけませんか。 よろしくお願いします。
yambejp

2021/02/17 04:14 編集

jQueryのオブジェクトはプロパティへのアクセスを propメソッドを通じておこないます。 $(・・・).checkedのような書き方はjQueryライクではありません 生のjsならobject.checkedのようなアクセス方法になります
keraker

2021/02/17 04:26

つまり、混ぜると機能しない場合があるということでよろしいでしょうか。
yambejp

2021/02/17 04:30

機能しますよ 混ぜ方が間違っているという話です
keraker

2021/02/17 04:45

ありがとうございます。 では $('input.option').each($(function() { $(this).checked = $(this).defaultChecked; })); のようにfunctionを$で囲めばよかったのでしょうか。 ”jquery javascript 混在”で調べてみたのですが、できるということしか書いてないページが多いので、 混ぜ方に関しての検索用のキーワードを教えていただけるとうれしいです。
yambejp

2021/02/17 04:51

どうしてもやりたいならこう $('input.option').each(function() { $(this).get(0).checked = $(this).get(0).defaultChecked; });
keraker

2021/02/17 04:52

もとになったものをよく見てみたら、 this.value = this.defaultValue とあったので$(functionではなく$(this)のほうで、 $(this)はつかわない、または$(this)にdefaultCheckedというプロパティはないということでしょうか。
keraker

2021/02/17 04:54

$(this)はあるのですね。 プロパティはこのままではアクセスできなかったということでしたか。 ご教授いただきありがとうございました。
yambejp

2021/02/17 04:58

注意スべきは、できるかできないかが判断基準ではなく jQueryを利用する限り、なるべく生のJSを意識しない書き方が 肝要ということです。一貫性がないと可読性もおち バグに繋がりやすくなります。
keraker

2021/02/17 05:01

ありがとうございます。 まだはじめたばかりですが、まず一文一文は統一して書くようにします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問