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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

5回答

20952閲覧

inputに対してjqueryでclickしても効かない

退会済みユーザー

退会済みユーザー

総合スコア0

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2016/11/16 01:31

編集2016/11/16 02:03

jqueryで
<input id="file" type="file" />
にたいして、
$("#file").click();
として、<input id="file" type="file" />を直接マウスでクリックしたときのような挙動を起こしたいのですが、そうなりません。(なにもおこりません)
このような例はネットを探せばよくありますが、マネしても効果がないです。

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

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

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

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

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

A-pZ

2016/11/16 01:43

「効かない」→具体的に行いたい内容を記載しましょう。例えば type="file" と指定していないものに対しても、<input type="file">のように動かしたいのか、など。
guest

回答5

0

<input id="file" type="file" /> のデザインが嫌だったので、画像を用意して。その画像をクリックしたら、<input id="file" type="file" />にjqueryをつかいクリックしようとおもいました。
<input id="file" type="file" />はcssでdisplay:none;にしています。

label要素を使って解決するのがスマートだと思います。

ただし、この方法には製作者スタイルシートを無効に設定しているブラウザでlabel要素内のコンテンツ、<input type="file"> の両方が出現してしまう問題があります。
質問者さんがやろうとしていう事でも同様の問題があります。

Re: teratailpeta さん

投稿2016/11/16 02:49

編集2016/11/16 02:51
think49

総合スコア18162

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

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

0

ベストアンサー

まず前提として
<input id="file" type="file" />
をクリックすればjavascript、jqueryを使わなくとも、ファイル選択ダイアログは開きます。

ただし、下記のようにクリックイベント時にイベントの伝搬をさせないようにreturn falseするとクリックしても開かなくなります。

javascript

1$(function(){ 2 $("#file").click(function(){ 3 return false; 4 }); 5});

そして、jqueryでマウスでクリックした時と同じ動作をという事ですが、例えばhtml部分に

HTML

1<input type="file" id="file"> 2<button id='btnopen'>open</button>

というボタンを追加してこれをクリックした時にファイル選択ダイアログを開く(つまり<input type="file" id="file">をクリックした時と同じ処理をする事はできます)

javascript

1$(function(){ 2 $("#btnopen").click(function(){ 3 $('#file').trigger("click"); 4 }); 5});

ようはjqueryで<input type="file" id="file">をクリックしたイベントを発生させているという事です。
ですのでマウスでクリックした時と同じ操作はできますが、以下のような処理は行わないでください。LOOPしてえらいことなりますから

javascript

1$(function(){ 2 $("#file").click(function(){ 3 $(this).trigger("click"); 4 }); 5});

jqueryからファイル選択ダイアログを開くというのはようは<input type="file" id="file">をjqueryでクリックするという事になります。

しかしあまりそういう使い方はしないと思います、なぜなら<input type="file" id="file">自身がダイアログ開く機能をもっているから、なのでこういう使い方をするとしたらデザイン面で<input type="file" id="file">を使いたくない時に
<input type="file" id="file" style="display:none">などして非表示にしておいて、見た目の良いデザインのボタンなどを配置して上記のjqueryのように間接的にクリックするなどの使い方以外あまり思いつきません。

投稿2016/11/16 02:47

編集2016/11/16 02:48
hiim

総合スコア1689

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

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

退会済みユーザー

退会済みユーザー

2016/11/16 03:14

解決しました。ありがとうございました!
hiim

2016/11/16 03:57

他の回答者様へのコメントとかを見てこっちの事か?と気づき一応のせておきます。ユーザーが実際にクリックなどしたハンドラの中ではclick()発火する事はできるのですが、セキュリティのためかそれ以外では効かないようです。 jsのclick()のあたり参照 http://var.blog.jp/archives/44807272.html ようは $("#btn").click(function(){ $('#file').click(); }); はできても $(document).ready(function(){ $('#file').click(); }); などはできないという事です。
guest

0

$("#file")は要素で、clickして発火するものと推測します。
クリックしたらどうしたいのですか?
クリックが効かないと言われても・・

投稿2016/11/16 01:35

takepieee

総合スコア686

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

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

退会済みユーザー

退会済みユーザー

2016/11/16 01:39

ファイル一覧を開きたいんです。 <input type="file"/> をマウスでクリックしたときと、同じ挙動になってほしいです。
takepieee

2016/11/16 01:47

一つ質問なのですが、通常jsやjQueryを使わずとも <input type="file">をクリックすればファイル一覧は開きますよね。 その挙動になっていない理由等はありますか?
退会済みユーザー

退会済みユーザー

2016/11/16 02:04

マウスでクリックをした場合できますが、jqueryから開くにはどうすればいいかが知りたいんです。
takepieee

2016/11/16 02:23

?? すみません、分からなくなってきました。 「マウスでクリックしたときと、同じ挙動になってほしいです。」と記載していらっしゃいますが、「マウスでクリックをした場合できますが、jqueryから開くにはどうすればいいかが知りたいんです」とはどういうことですか? jQueryをどういう目的で使うのか、 - どの要素を(id="file"を) - どういうイベントをした時に(クリックした時に) - どういう処理を行うのか(input type="file"と同じようにファイル指定窓を開く) を明確にしてください。出来ればその設置目的もお願いします。 上記カッコ内は今までの流れで書きましたが、これは上でも触れましたがJSもjQueryも不要です。
退会済みユーザー

退会済みユーザー

2016/11/16 02:35

<input id="file" type="file" /> のデザインが嫌だったので、画像を用意して。その画像をクリックしたら、<input id="file" type="file" />にjqueryをつかいクリックしようとおもいました。 <input id="file" type="file" />はcssでdisplay:none;にしています。
guest

0

javascriptいらないと思いますけど

HTML

1<input id="file" type="file" style="position:absolute;top:-999px" /> 2<label for="file">file</label>

投稿2016/11/16 02:55

yambejp

総合スコア114814

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

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

0

$("#file").click(); は $("こいつが").クリックされたとき(これをします); だと思うんですが。
$("#file").click();をロードしたらFILEが開くとか目的だった場合クリックされてないので無理なのでは?

投稿2016/11/16 02:36

toutou

総合スコア2050

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問