2012-03-09 9 views
1

空の場合、アップロードが送信ボタンを非表示にするは、フィールド「ファイル」は、この単純な例では

<form action="" method="post" enctype="multipart/form-data"> 
      Upload images: <input type="file" name="images[]" multiple="multiple"> <input type="submit" name="submitImgs" value="Upload"/> 
     </form> 

私は、ファイルフィールドに気にいらないのは、私はPHPスクリプトを作成しようとしたまで、送信ボタンを非表示にすることができますどのように$ _FILES ['error'] == 4かis_file_uploadedなのかどうか調べてみてください。だから私は単に何かがファイルフィールドで選択されるまでボタンを隠したいと思う。

答えはJavaScriptで可能性があり、jQueryのは...私は気にしないでください:D

おかげ

答えて

6

<input type="file">要素がfiles性質を持っています。

files.lengthを単にチェックしてください。

その場で送信ボタンを変更するjQueryの例、:

// Select the <input type="file"> element 
$('input[type=file][name="images[]"]').change(function(){ 
    var hasNoFiles = this.files.length == 0; 
    $(this).closest('form') /* Select the form element */ 
     .find('input[type=submit]') /* Get the submit button */ 
     .prop('disabled', hasNoFiles); /* Disable the button. */ 
}); 
+0

開始時に送信ボタンを無効にする必要がありますか? – Warface

+0

@Warfaceはい、送信ボタンに '無効 'を追加することでこれを行うことができます。 –

0

はこれを使用します。ファイルフィールドのchangeイベントにコードを添付します。ボタン

を提出

$(function() { 
    $("input:file").change(function() { 
     var fileName = $(this).val(); 
     if(filename != "") { $("#submitButtonId").show(); } //show the button 
    }); 
    }); 
0

提出のデフォルトの状態を非表示にする必要があります(CSS display: none) とファイルフィールドの変更イベントに、あなたが表示さ彼女は、コード

<script> 
$(function() { 
    $("#myfileinput").change(function() { 
    if($(this)).val() != "") $("submit").show(); 
    }); 
}); 
</script/> 
<form action="" method="post" enctype="multipart/form-data"> 
Upload images: <input id="myfileinput" type="file" name="images[]" multiple="multiple"> 
<input type="submit" name="submitImgs" value="Upload" style="display:none"/> 
</form> 
0
<script> 
function checkFile() { 
    var myFSO = new ActiveXObject("Scripting.FileSystemObject"); 
    var filepath = document.upload.file.value; 
    var thefile = myFSO.getFile(filepath); 
    var size = thefile.size; 
    if(size > 0) { 
     document.getElementById('submit').style.display='block'; 
    } 
} 
</script> 
<form action="" method="post" enctype="multipart/form-data"> 
      Upload images: <input type="file" onChange="checkFile()" name="images[]" multiple="multiple"> <input type="submit" style="display:none;" name="submitImgs" value="Upload" id="submit" /> 
</form> 
です
+0

'ActiveXObject'は独自のMicro $ oftブラウザ拡張です。このコードはIEの(古いバージョンの)IEでのみ動作する*ときどき*動作します。また、 'getElementById'は関数であり、プロパティではありません。角括弧の代わりに括弧を使います。 –

関連する問題