ti-enxame.com

Como adicionar validação no meu próprio módulo?

Eu seleciono o tipo de documento na opção de seleção e, em seguida, carrego o arquivo para validar no código

<form name="file_up_form" method="post" name="fileupload" enctype="multipart/form-data">
    <div class="field_container1 thumbnail span3">
        <label for="select_option">Select option here</label>
        <select name="doc_type" id="select_option" style="width: 200px;" multiple>
            <option value="1">Education</option>
            <option value="2">Certification</option>
            <option value="3">Client Paperwork</option>
            <option value="4">Invoice</option>
        </select>
    </div>
    <div class="field_container thumbnail span4">
        <label for="file">Upload here: </label>
        <input type="file" name="file" id="file">
        <input class="btn btn-primary" type="submit" value="submit" name="submit">
    </div>
    <input type="hidden" name="check" value="1">
</form>

Aqui está o código de validação que estou usando até agora:

<script> 
    function validate() 
    { 
        if(document.fileupload.doc_type.value == "" && document.fileupload.doc_type.value == null) 
        { 
            alert( "Please provide your document!" ); 
            return false; 
        } 
        if(document.fileupload.file.value == "" && document.fileupload.file.value == null) 
        {   
            alert( "Please provide your file!" ); 
            return false; 
        } 
        return true; 
    } 
</script>
1
reegan29

Mude document.fileupload.doc_type.value Para document.getElementById('file').value. Além disso, você está verificando se o valor é "" AND null, não tenho certeza se isso é possível.

A menos que você precise verificar o formato do arquivo, etc., tente algo mais simples como este:

HTML

<form onsubmit="return(validate());" name="file_up_form" method="post" name="fileupload" enctype="multipart/form-data" >
    <div class="field_container1 thumbnail span3">
        <label for="select_option">Select option here</label>
        <select name="doc_type" id="select_option" style="width: 200px;" multiple>
            <option value="1">Education</option>
            <option value="2">Certification</option>
            <option value="3">Client Paperwork</option>
            <option value="4">Invoice</option>
        </select>
    </div>
    <div class="field_container thumbnail span4">
        <label for="file">Upload here: </label>
        <input type="file" name="file" id="file">
        <input class="btn btn-primary" type="submit" value="submit" name="submit">
    </div>
    <input type="hidden" name="check" value="1">
</form>

JavaScript

<script> 
    function validate() 
    { 
        if(!document.getElementById('file').value) 
        { 
            alert( "Please provide your document!" ); 
        } 
        return false; 
    } 
</script>

Você também não deve retornar false (não true como faz atualmente) se nenhum arquivo for selecionado para impedir o envio do formulário? A tag <form> Provavelmente deve incluir também um parâmetro action.

3
johanpw