JavaScript ‘onclick’ – evenement ‘terug’ trefwoord functionaliteit

Ik ben echt nieuwe aan javascript, en struikelde over de return trefwoord. Kortom, wat is het verschil in termen van deze 2 stellingen?

<input type="checkbox" onclick="doAlert()" />

vs

<input type="checkbox" onclick="return doAlert();" />

Wezen, gingen allebei dezelfde resultaten en de naam van de functie, maar is er meer aan de hand? Alle hulp zeer gewaardeerd :). Bedankt!

InformationsquelleAutor Shiroi98 | 2011-10-18



3 Replies
  1. 38

    False retourneren van de functie, zal het afbreken van het effect van de controle. Omdat de native functies die geschreven hardcoded in html-eigenschappen (het werd een aantal nieuwe lokale functie), het schrijven van de html-zonder het woord “terugkeer” wordt alleen het uitvoeren van de functie, en verliest haar terugkeer waarde, als je hebt schreef:

    function doAlert() {
       if(some_condition)
         return false;
       else
         return true;
    }
    function some_local_function() {
       doAlert();
    }

    Functie some_local_function niet terug in de waarde, hoewel doAlert geeft.

    Wanneer u schrijft “return”, het is zoals je schreef de tweede functie zoals deze:

    function some_local_function() {
       return doAlert();
    }

    met behoud van de terugkerende waarde van doAlert, wat het zal worden. Als het waar is – de actie uit te voeren (de checkbox wordt aangevinkt) – anders – het zal annuleren.

    Je live kan zien expamle hier: http://jsfiddle.net/RaBfM/1/

  2. 40

    Bepaalde html-elementen hebben JS gebeurtenissen die zich anders gedragen wanneer true/false geretourneerd. Bijvoorbeeld:

    <input type='submit' value='Click Me' onSubmit='ValidateForm();'>

    …vs…

    <input type='submit' value='Click Me' onSubmit='return ValidateForm();'>

    In tweede instantie, als de ValidateForm functie weer fout wordt het formulier niet in te dienen, in de eerste, zelfs als de functie false retourneert de vorm nog zal indienen.

    Ik denk dat dit scenario kunt u het verschil te zien tussen het gebruik van de return zoekwoord niet.

    BIJGEWERKT Te vereenvoudigen, als u de return trefwoord die je passeren van een waarde terug naar de functie die wordt aangeroepen, de onsubmit. Zonder dat, je bent gewoon het aanroepen van de functie die u een naam in de gebeurtenis-handler en retourneren niets.

    • Wat als ValidateForm geeft 0 of null of 23 in plaats van true of false in de syntaxis onSubmit='return ValidateForm();'?
    • testen en te zien wat er gebeurt. 🙂
    • Het werkt voor al die waarden. Is ValidateForm stel om terug te keren iets?
    • ik weet niet de details van de uitvoering, maar ik zou verwachten dat het iets als if (returnValue === false) { /* do something here*/ }. dus tenzij je terug ‘false’ — ik denk dat de vorm zal indienen
  3. 0

    toevoegen return naar een functie(), deze schakelt de standaard gedrag van de browser, het schakelt de taak van submit. Het betekent ‘ blijft u op dezelfde pagina als de functie false retourneert en u kunt vullen met de waarde in het veld weer.

    Als u geen gebruik return met de functie() dan submit functie zal vervullen van zijn taak, wordt deze omgeleid naar de volgende opgegeven pagina, zonder zorgen te maken over het gegeven resultaat of het waar of onwaar is.

    • Gewoon het toevoegen van return in de voorkant van de functie-aanroep *niet* uitschakelen van de standaard gedrag van de browser, het hangt af van wat de functie-aanroep terug. Als de functie retourneert iets truthy is het standaard gedrag is uitgevoerd; als de functie geeft iets falsy, en is het standaard gedrag is geannuleerd. Y. Soham is aanvaard het antwoord van 7 jaar voor dit antwoord heeft betrekking op dat, hoewel dit antwoord is feitelijk onjuist.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *