2011-08-05 8 views
-1

値が== ""の要素を選択するjqueryでクエリを作成する必要があります。私はIEで動作しますが、クロームではdoesntです。私はクロムには別の値が定義されていないと思う。クロムに定義されていない値を持つ要素を見つける

マイクエリ:

var images = $('#images>div>input[type=file][value=""]'); 
if(images.length > 0) // ... 

ユーザーに画像を添付する機会を与えるタイプのファイルの入力要素がある見ることができるように。

<div id="files"> 
<div><input type="file" name="files" /><input type="button" value="Remove" onclick="removeImage(this)" /></div> 
<div><input type="file" name="files" /><input type="button" value="Remove" onclick="removeImage(this)" /></div> 
<div><input type="file" name="files" /><input type="button" value="Remove" onclick="removeImage(this)" /></div> 
</div> 

IEでは素晴らしいですが、クロームでは常に0個の要素が返されます。

すべてのブラウザで動作する解決策はありますか?

+0

マークアップ(HTML)を投稿できますか? (また、どのバージョンのIEを試してみましたか?) – Pointy

答えて

0

私はあなたに、両方の答えをマージし、最後に私はこれを書いた:これは素晴らしい作品

var images = $(':input[type="file"]').filter(function() { 
    return $(this).val()==this.defaultValue; 
}); 

を。ありがとう。

+0

素敵な仕事。あなたはいつも ':input [type =" file "]'を[':file'](http://api.jquery.com/file-selector/)と入れ替えることができます:) – alex

0

は(クロームだけあなたにC:\fakepath\プリペンドとファイル名を教えてくれますが)...

var images = $('#images > div > :file') 
       .filter(function() { return $(this).val().length; }); 

クロム、Firefoxの& IEは間違いvalueを得ることができ、これを試してみてください。

What does your browser say?

+0

あなたの解決策もhasnt workです。私はhtmlコードを入れました。 – nosbor

+0

+1 - これは私を助けた – nosbor

1

これは動作します:

$('#show').click(function(){ 
    $(':input[type="file"]').each(function(){ 
     if($(this).val() == this.defaultValue) 
     { 
      $(this).css('border','2px solid red'); 
     } 
    }); 
}); 

代わりの変数は空の文字列または「fakepath」で内容を比較しようとすると、等を、単に独自のdefaultValueと比較して、あなたは知っていますよそれが設定されているかどうかを確認します。

http://jsfiddle.net/AlienWebguy/5sK7T/

+0

+1いいね! - – Maverick

+0

+1 - これは私を助けた – nosbor

関連する問題