2016-07-24 11 views
1

私は「fileToUploadは」(JSとショー・エラー)空の場合は私のエラーを表示し、ページをリロード停止する「fileToUpload」が空の場合はPHP停止フォームのリロードを表示するエラーのJs

<form method="post" enctype="multipart/form-data"> 
    Select image to upload: 
    <input type="file" name="fileToUpload" id="fileToUpload"> 
    <input class='new_post' type="submit" value="Upload Image" name="submit"> 
</form> 

$('.new_post').click(function() { 
    var get_photo = $('#fileToUpload').get(0).files.length; 

    // If 0 file show error 
    if (get_photo == 0) { 
     openandclose('.error_box' , 'emptyyyy.', 1700); 
     $('.error_box').focus(); 
     return false; 
    } 
}); 
+1

あなたの問題は何ですか?それが動作するかどうかをテストします。ボタンをクリックするのではなく、フォームでsubmitイベントを使用することをお勧めします。しかし、あなたが右から始まっています。もし私たちがあなたをもっと助けたいなら、jsfiddleを投稿してください。 – Loenix

+0

おそらく、get_photo == 0はfalseです。テストできません – Loenix

+0

問題を指定してください。 bcoz私の答えでコードランナーのコードを実行し、それが働いた、それは私が私の答えを削除した理由です。私はあなたの参照のために元に戻しています。 Plsはあなたの問題を指定します。 – Iceman

答えて

0

あなたにIDを追加します。このようなフォーム<form method="post" enctype="multipart/form-data" id="myform">とあなたのjavascriptに$('#myform').submit()のようなボタンのクリックイベントではなく、フォーム送信イベントへのコールバックとしてチェック機能を添付してください。

$('#myform').submit(function() { 
 
    var get_photo = $('#fileToUpload').get(0).files.length; 
 
    // If 0 file show error 
 
    if (get_photo == 0) { 
 
    /* 
 
    openandclose('.error_box', 'emptyyyy.', 1700); 
 
    $('.error_box').focus(); 
 
    */ 
 
    alert("EMPTY!!"); 
 
    return false; 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form method="post" enctype="multipart/form-data" id="myform"> 
 
    Select image to upload: 
 
    <input type="file" name="fileToUpload" id="fileToUpload"> 
 
    <input class='new_post' type="submit" value="Upload Image" name="submit"> 
 
</form>

+0

しかし、OPのコードに誤りはなく、うまくいくはずです。これはちょうどお勧めの回答です(私は以前にそれを削除した理由) – Iceman

+1

おかげで仕事が完璧! –

0

このコードは、ファイルが選択されているかどうかをチェックする]ボタンをクリックout.Uponお手伝いをし、したがってTrue/Falseの返すことがあります。

<form method="post" enctype="multipart/form-data" onsubmit="return funccheck();"> 
Select image to upload: 
<input type="file" name="fileToUpload" id="fileToUpload"> 
<input class='new_post' type="submit" value="Upload Image" name="submit"> </form> 
<script> 
function funccheck() { 
var get_photo = $('#fileToUpload').get(0).files.length; 
// If 0 file show error 
if (get_photo == 0) { 
openandclose('.error_box' , 'emptyyyy.', 1700); 
$('.error_box').focus(); 
return false; //stops page loading 
} 
return true; // initiates page loading 
}); 
</script> 
+0

ありがとうございますが、仕事の仲間ではありません –

0

これを試してみてください:

$('.new_post').click(function(e) { var get_photo = $('#fileToUpload').get(0).files.length; // If 0 file show error if (get_photo == 0) { openandclose('.error_box' , 'emptyyyy.', 1700); $('.error_box').focus(); e.preventDefault(); return false; } });

変数eがイベントで、関数でpreventDefaultは、ファイルがない場合は提出からフォームを停止します。

+0

jqueryイベントコールバックでfalseが返された場合、preventDefaultと同じことが起こるため、この追加は必要ありません。 – Iceman

+0

私は必然的に、これが必要だったいくつかの奇妙なバグを目撃しました。そして、それを行う "正しい"方法です。 – FMashiro

+0

実際にjqueryは 'e.preventDefault'と' e.stopPropagation'に内部的に呼び出しを行います。あなたはjqueryチームのメーリングリストのアーカイブ - > THE RIGHT WAY TO STOPに従うだけでなく、これを参照することもできます:http://stackoverflow.com/questions/1357118/event-preventdefault-vs-return-falseこれは、 'return false'が失敗するようなシナリオを再現できるのであれば、本当に興味があると言いました。 :D – Iceman

関連する問題