元スレ+ JavaScript の質問用スレッド vol.117 +
JavaScript覧 / PC版 /みんなの評価 :
501 = :
【環境】IE9・IE10・Firefox・Chrome
【何をしたのか】ファイルをPOSTした
【エラーメッセージ】特になし
【期待する結果】画面遷移をせずに選択したファイルをPOST送信したい
【サンプルコード】
こちらでの質問でよいのか判断がつきかねるのですが
type=fileで選択した画像をPOSTしたいと考えておりますが
var image = $("#registerd [name=image]").val();
としてもimageには何も入っておりません。
その他のtype=textなどは取得できてPOST出来ております。
選択された画像を取得するにはどのようにすれば良いのでしょうか?
識者の方たちのアドバイスいただけると助かります。
502 = :
>>501
残念ながらjQueryでは選択したファイル内容を取得できない。
取得するにはFile APIを使用する必要がある。
ただしFile APIはIE10から対応だから
IE9では動かない。
画面遷移をせずにファイルをPOSTするだけなら
iframeを使ってできる。これなら古いブラウザでもOK
503 = :
なお、ここらへんを意識せずにやってくれるライブラリがある。
検証したわけじゃないからオススメは言えないが
「ファイル アップロード JavaScript ライブラリ」あたりで
検索すると沢山出てくるよ。
良さそうなのがあったら教えてくれw
505 = :
idがabcのtrタグ内にある、nameが_defで終わるnameをリストしたい。
一番スマートな方法は?
<tr id="abc">
<td><input name="fas_def" /></td>
<td><input name="sec_def" /></td>
<td><input name="thr" /></td>
<td><input name="fou_def" /></td>
<td><input name="fif" /></td>
<td><input name="six_def" /></td>
</tr>
506 = :
>>505
一行で書いてみた。動かしてないけどこんな感じかな。
var names = $.map($('#abc [name$="_def"]'), function(e) { return e.attr('name') });
508 = :
少し間違った。こうだった
var names = $.map($('#abc [name$="_def"]'), function(e) { return e.name })
ブラウザがarrow functionをサポートしてれば更に短くこう書ける。
var names = $.map($('#abc [name$="_def"]'), e => e.name)
;
509 = :
もしイベントが並行に実行されるのなら、
関数Aの実行中にもう一つ、
同じ関数Aが実行される可能性があるので、
すべての関数を再入可能にしなければならないし、
すべてのグローバル変数を、ロックしなければならない
つまり、マルチスレッド・プログラミング
もしそんなに難しいなら、
誰もプログラミング出来ないはずだから、
そんなことはあり得ない
そもそもJSで、ロックやマルチスレッド・
プログラミングについて、書いている本があるのか?
>>504
jQueryの質問は、jQueryのスレへ書き込んで
510 = :
JSで画像をブラウザの表示領域内に表示されるまで読み込ませない、という処理は可能でしょうか?
511 = :
このスレはjqueryの話題も排除しません
512 = :
>>499
ありがとうございました
JSのイベント周辺について書かれている仕様書とは何でしょうか?
http://www.ecma-international.org/ecma-262/5.1/
これを見てもイベントについてはなぜか書かれていないようです
514 = :
>>510
可能だし、最近よく見る
jqueryのプラグインにありそう
515 = :
>>510
http://codezine.jp/article/detail/7623
517 = :
>>514,509
やはりJavaScript無効環境に対応するにはHTMLにnoscriptを入れないとだめなようですね
今から大量のimgタグにそれをするのは大変なので諦めます ありがとうございました
519 = :
>>516
DOMの方に書かれているんですね
ありがとうございました
520 = :
jQuery初心者で勉強中の者です。
http://calie.jp/beashow/index.htmlのサイトのような
画像を読み込んだら自動で画像がフェードインしエフェクトが動く動きを実現するには
jquery.inview.jsとjquery.easing.1.3.js
が必要だということはわかったのですが、どのように記述すれば実現できるのかがわかりません。
スクロールしてその画像がみえてきたときに画像をよみこんでフェードインさせた画像を左右上下にエフェクトをかけて表示させる方法を詳しい方ご教授いただけないでしょうか
522 = :
>>521
断る
523 = :
荒らしには反応するだけ無駄ですよ
525 = :
誘導厨はプログラム板へどうぞ
526 = :
これにタイムアウトを組み込むことは無理でしょうか?
検索するとajaxでは見るのですが単純なpostではみかけませんでした。
$("form#sample").submit(function(){
var mail = $("#sample [name=mail]").val();
$.post(
'foobar',
{
'mail': mail
},
function(data)
{
if( data == 'success')
{
alert('OK');
}
else
{
alert('NG');
}
}
);
});
使用している部分が多いのでajaxに変更することなく、
これにタイムアウトがつけれればと考えています。
527 = :
JavaScript を自ら学ぶ人の質問はなかなか見ないな
528 = :
FormDataっていうのもあるのか。
でもこれHTML5の内容だな。
やっぱり古いブラウザではJavaScriptで
ファイルの送信ってきついの?
529 = :
>>528
> FormDataっていうのもあるのか。
HTML5 は関係あるのか?
XMLHttpRequest Level 2 の FormData の事ではないのか?
http://www.w3.org/TR/XMLHttpRequest2/#interface-formdata
530 = :
XMLHttpRequest Level 2 ってHTML5の一部でしょ?
531 = :
XMLHttpRequestはデータの送信だけだから
ローカルのファイルを読み込むには
別の技術が必要になるのでは?
532 = :
>>530
違う
533 = :
>>526
一旦サブミットイベントにフラグでreturn falseして、タイムアウトの関数でフラグを変えもう一回サブミットをよぶ。これはフラグで通すとか。
534 = :
>>492 >>499
setTimeout の task source は timer task source と呼ばれるものが
仕様に定義されている
www.w3.org/TR/html5/webappapis.html
したがってevent loop の task source とは別なので queue も別になるだろう
>>490
その eventの propagate が終了するまでは同期的に実行される筈
DOM仕様のアルゴリズムでも非同期には処理していないし
例えば dispatchEvent は同期的に実行される
>>531
送信だけって、リクエスト送ればレスポンス受信できるじゃないか?
ローカルファイルは FileAPI
535 = :
同期的と非同期的の意味が分からなくなってきました
関数発行後すぐに実行されるのが同期的、
発行してから実行されるまでタイムラグがあるのが非同期的
と思っていたのですが違いますか?
536 = :
>>535
違います。
同期は関数を実行して処理が追わらないと
関数から処理が戻らないものです。
その関数の処理が10秒かかる重い処理であれば
10秒の間、その他の処理は一切できなくなります。
だから非同期を使うんですね。
タイムラグが有るかどうかは関係ありません。
538 = :
>>536
すると非同期関数は、実行中に処理が戻ってくることがあるのですか?
遅延実行されるだけで、実行中はブロックされると思ってました
540 = :
シングルスレッドで動いているJSが
ノンブロッキング処理できるのは何故ですか?
541 = :
innerHTMLだったりjqueryのhtmlだったりって非推奨なのですか?
documentに大量ノードがあって、あからさまにid=hogeのテキストだけ更新、みたいな場合なら
やらないほうがいいというのはわかるのですが
何が何でも部分的にappendやらremoveやらをちまちま更新した方が良いのでしょうか?
542 = :
普通に使っていい
543 = :
>>540
シングルスレッドで動くのは、JavaScriptの実行環境で動く
あなたが作ったスクリプトであって、
JavaScript実行環境自体はマルチスレッドだからです。
544 = :
>>538
最後の行の認識で合ってる
10秒かかる関数なら同期だろうと非同期だろうと10秒ブロックされるのは一緒
その時点で実行される(同期)かされない(非同期)かってだけ
WebWorkerを使わない限りはシングルスレッド
546 :
>>541
innerHTMLの問題点がわかっているなら使ってもいい
547 = :
innerHTMLの問題点なら、jQueryのparseHTMLメソッドで解決できるよ。
だから今更遅いappendやremoveなんかを使う理由がない。
548 = :
innerHTMLの問題点って出力にそのまま使ったりしちゃ(攻撃者のコードが入るかもしれないから)ダメよってことであってる?
549 = :
>>544
ありがとうございました
550 = :
>>543
それは違うのでは?
仕様書にJavaScriptはマルチスレッドでなくてはいけないとか書かれてるんですか?
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.113 + (1001) - [97%] - 2014/1/25 12:46
- + JavaScript の質問用スレッド vol.110 + (1001) - [97%] - 2013/10/13 14:01
- + JavaScript の質問用スレッド vol.119 + (1002) - [97%] - 2014/10/3 15:30
- + JavaScript の質問用スレッド vol.118 + (1002) - [97%] - 2014/8/29 22:30
- + JavaScript の質問用スレッド vol.116 + (1002) - [97%] - 2014/7/1 0:45
- + JavaScript の質問用スレッド vol.115 + (1001) - [97%] - 2014/5/29 16:16
- + JavaScript の質問用スレッド vol.114 + (1001) - [97%] - 2014/5/3 10:45
- + JavaScript の質問用スレッド vol.127 + (160) - [97%] - 2021/7/16 9:30
- + JavaScript の質問用スレッド vol.112 + (1001) - [97%] - 2013/11/27 16:46
- + JavaScript の質問用スレッド vol.111 + (1001) - [97%] - 2013/11/4 6:00
- + JavaScript の質問用スレッド vol.113 + (1001) - [97%] - 2014/3/15 21:30
- + JavaScript の質問用スレッド vol.127 + (1001) - [97%] - 2016/2/4 0:15
- + JavaScript の質問用スレッド vol.137 + (1003) - [97%] - 2019/3/26 11:46
- + JavaScript の質問用スレッド vol.107 + (1001) - [97%] - 2013/9/7 10:16
- + JavaScript の質問用スレッド vol.121 + (1001) - [95%] - 2015/1/1 18:30
- + JavaScript の質問用スレッド vol.126 + (952) - [95%] - 2015/11/18 13:15
- + JavaScript の質問用スレッド vol.126 + (348) - [95%] - 2023/1/12 17:00
トップメニューへ / →のくす牧場書庫について