25

単純な入力ファイル<input type="file" name="file" id="file"> がありますが、投稿後に入力ファイルにコンテンツがあるかどうかを検証しようとしています。

試してみまし$("#file").val()たが、コントロールのDOMは常に同じです。

4

3 に答える 3

39

とはどういう意味ですか:投稿の後、どういう意味ですか:

-送信ボタンをクリックした後、投稿または送信する前ですか?

-それとも、送信されてコンテンツがサーバーに到達した後のことですか?

それが最初のケースである場合は、送信されないようにフォームに false を返すようにしてください。たとえば、次のように検証できます。

<form onsubmit="return false">

または、送信時に検証関数を呼び出した後、フォームにブール値を返そうとします:

<form onsubmit="return validate()">

次に、Jquery を使用してデータを検証します。

function validate(){

  valid = true;

     if($("#file").val() == ''){
         // your validation error action
        valid = false;

     }

    return valid //true or false
}

エラーが見つかった場合は false を返し、データが有効な場合は true を返します。それがどのように機能するかを理解した後、最終的には、これらすべてを Jquery で実行できます。

HTML:

<form id="fileform" action="nextpage.php">

JS:

$('#fileform').submit(function(){
     valid = true;

     if($("#file").val() == ''){
        // your error validation action
        valid =  false;
    }

    return valid
});

また、送信されているファイルの種類を確認する場合は、次の投稿を確認できます: jQuery - INPUT type=File , Image FileType Validation options?

送信後にデータを検証する必要がある場合、PHP などのサーバー スクリプト言語で検証をコーディングする必要があります。

于 2013-04-20T21:32:04.210 に答える
5

このようなフォーム送信後に値を取得してみてください

$('#yourform').submit(function(){
     var val = $("#file").val();
    if(val == ''){
       return false;
    }
});
于 2013-04-20T21:20:58.423 に答える
4

投稿後に検証しようとしています

これは、jQuery を介してクライアントではなくサーバー側で行うものです。使用しているサーバー側の言語で質問にタグを付けていただければ、必要なサポートを提供できます。

于 2013-04-20T21:15:12.750 に答える