11521 sujets

JavaScript, DOM et API Web HTML5

bonjour

dans un script Js je trouve cette notation


if (fileList || true) {
  do something ....
  }


fileList est un objet qui est créé, ou pas, selon le contexte.

Mais que veut dire la condition?
- si fileList existe ou bien si 'vrai' ?

mais 'vrai' est toujours vrai...... alors je comprends pas le sens de la condition...
euh...

en gros ça ça sent le bug dégagé à la va vite avec un true posé vite fait pour que ça passe toujours Smiley lol
pchlj a écrit :
euh...

en gros ça ça sent le bug dégagé à la va vite avec un true posé vite fait pour que ça passe toujours Smiley lol

tu es sur? car j'ai déjà vu des notations de ce genre, mais pas avec le "true", toutefois
voici le code complet de la page


<!DOCTYPE HTML>
<html>
    <head>
        <title>Example</title>
        <style>
            .table {display:table;}
            .row {display:table-row;}
            .cell {display: table-cell; padding: 5px;}
            .label {text-align: right;}
            #target {border: medium double black; margin:4px; height: 50px;
                width: 200px; text-align: center; display: table;}
            #target > p {display: table-cell; vertical-align: middle;}
        </style>
    </head>
    <body>
        <form id="fruitform" method="post" action="http://titan:8080/form">
            <div class="table">
                <div class="row">
                    <div class="cell label">Bananas:</div>
                    <div class="cell"><input name="bananas" value="2"/></div>
                </div>
                <div class="row">
                    <div class="cell label">Apples:</div>
                    <div class="cell"><input name="apples" value="5"/></div>
                </div>
                <div class="row">
                    <div class="cell label">Cherries:</div>
                    <div class="cell"><input name="cherries" value="20"/></div>
                </div>
                <div class="row">
                    <div class="cell label">File:</div>
                    <div class="cell"><input type="file" name="file"/></div>
                </div>
                <div class="row">
                    <div class="cell label">Total:</div>
                    <div id="results" class="cell">0 items</div>
                </div>                
            </div>
            <div id="target">
                <p id="msg">Drop Files Here</p>
            </div>            
            <button id="submit" type="submit">Submit Form</button>
        </form>       
    </body>
</html>




        <script>
            var target = document.getElementById("target");     
            var httpRequest;
            var fileList;
                         
            document.getElementById("submit").onclick = handleButtonPress;                    
            target.ondragenter = handleDrag;
            target.ondragover = handleDrag;
            
            function handleDrag(e) {
                e.preventDefault();
            }
            
            target.ondrop = function(e) {
                fileList = e.dataTransfer.files;
                e.preventDefault();
            }          
                         
            function handleButtonPress(e) {
                e.preventDefault();
                 
                var form = document.getElementById("fruitform");
                var formData = new FormData(form);
                 
                if (fileList || true) {
                    for (var i = 0; i < fileList.length; i++) {
                        formData.append("file" + i, fileList[i]);
                    }
                }  
                 
                httpRequest = new XMLHttpRequest();
                httpRequest.onreadystatechange = handleResponse;
                httpRequest.open("POST", form.action);
                httpRequest.send(formData);
            }
                         
            function handleResponse() {
                if (httpRequest.readyState == 4 && httpRequest.status == 200) {
                    var data = JSON.parse(httpRequest.responseText);
                    document.getElementById("results").innerHTML = "You ordered "
                        + data.total + " items";
                }
            }
         </script>



c'est extrait du livre HTML5 definitive guide.

upload/1517407269-40948-cover.jpg
Modifié par lionel_css3 (31 Jan 2018 - 15:01)
fileList n'est jamais null.

Il est déclaré en entrée de page.

en revanche le lenght lui pète une erreur. mais non bloquante dans le code... Smiley lol
Modérateur
C'est bien une connerie.
Un if inutile. On utilise parfois le raccourci || pour de l'assignement:


let truc = bidule || '';


mais dans ce cas de figure ça ne sert à rien.

De toute façons en voyant ça:

document.getElementById("submit").onclick = handleButtonPress;  

J'ai explosé ma résistance au facepalm Smiley smile