0

form を介してファイルを取得し、そのタイプを検証するように依頼します。しかし、Javaスクリプトが機能しないか、呼び出しが表示されないように聞こえますか?

<form enctype="multipart/form-data" action="Upload2.jsp"
 method="post" onsubmit="javascript:return validate();">
    <td><b>Choose txt file To Upload:</b></td>
    <td><input name="file" type="file"></td>
    <td><input type="submit" value="Upload File" ></td>
</form>

そして、ここにスクリプトがあります:

<script language="JavaScript">
    function validate(){
        if(document.form.file.value == "" ) {
            alert("Enter course code !");
            return false;}

        else {
            var value = document.form.file.value;
            var ext = value.substr(dot, value.length);
            //ext = value.slice(file.indexOf(".")).toLowerCase();
            if ( ext=="txt" ) {
                return true; }
            else{
                alert("choose a .txt file");
                return false;}
            }
       }
</script>

そして、これがフォームです..私のスクリプトの正しさがわからないのですか?

4

2 に答える 2

0

アップロードされたファイルの種類を検証し、そのサイズを制限するための最良の方法は、

var ext = $('#uploadFeedback').val().split('.').pop().toLowerCase();
if($.inArray(ext, ['gif','png','jpg','jpeg']) == -1) {
    alert('invalid extension!');
}

上記はファイルタイプの検証です。

var uploadedFile = document.getElementById('uploadFeedback');      
var fileSize = uploadedFile.files[0].size;     

上記のファイルサイズの検証

于 2013-08-22T06:09:55.050 に答える
0

次を使用して、文字列の最後のピリオドの後にあるものをキャプチャできます。

ext = value.split(".").pop();

Stringvalueを配列​​に分割します。

var myValue = "some.thing.ext";

var myArray = myValue.split(".");

今myArrayは:

["some", "thing", "ext"];

を使用して、配列から最後の値をポップできるようになりました.pop()

var ext = myArray.pop();

ext === "ext";
myArray === ["some", "thing"]

コンテキストで:

function validate(){
    if(document.form.file.value == "" ) {
        alert("Enter course code !");
        return false;}

    else {
        var value = document.form.file.value,
            ext = value.split(".").pop();
        if ( ext == "txt" ) {
            return true; }
        else{
            alert("choose a .txt file");
            return false;}
        }
   }

onsubmit を次のように変更した場合:

onsubmit="javascript:return validate(this);"

次に、値の最初の引数としてフォーム要素を取得します。

function validate(form){
    var value = form.file.value,
        ext = value.split(".").pop();

    if( !value ) {
        alert("Enter course code !");
    }
    else if ( ext !== "txt" ) {
        alert("choose a .txt file");
    }

    return ( ext === "txt" );
}

ノート:

唯一の検証手段として JavaScript を使用しないでください。検証に合格したかどうかを判断するには、ある種のサーバー サイト言語を使用します。

JS を使用して、ユーザーがサイトをよりスムーズに操作できるようにします。

于 2012-05-10T14:20:18.147 に答える