2016-05-03 15 views
2

Ich rufe diese Funktion onload auf dem Körper mit <body onload="dis()">Stopp Javascript Brennen, wenn Seite geladen wird

function dis(){ 
    if($('#stname').val() == ""){ 
     $('#update').hide(); 
     $('#newstore').show(); 
    } 
    else { 
     $('#update').show(); 
     $('#newstore').hide(); 
    } 
} 

Grundsätzlich mag ich überprüfen, ob ein bestimmtes Eingabefeld leer ist oder nicht auf Last. Wenn es leer ist, sollte die Newstore-Schaltfläche angezeigt werden. Wenn nicht, sollte der Update-Button angezeigt werden. Aber so funktioniert es wie ich, wenn Seite geladen wollen, aber wenn ich etwas in der stname geben, schalten die Tasten. Wie kann man dem entgegenwirken? Gibt es eine Möglichkeit, das Auslösen von JavaScript zu stoppen, wenn die Seite fertig geladen ist?

+0

versuchen, diese Funktion aufzurufen innerhalb document.ready => $ (document) .ready (function() {dis(); // Ruffunktion hier}); –

+0

teilen Sie bitte auch Ihren HTML-Code. Hast du diese Funktion bei jedem Textbox-Event wie key up/down aufgerufen? –

+0

'' no keyup/Tiefe @JitendraTiwari –

Antwort

1

das Kontroll tun, wenn das Dokument DOM bereit ist, die einfach zu tun, da Sie JQuery verwenden:

$(document).ready(function(){ 
    if($('#stname').val() == ""){ 
     $('#update').hide(); 
     $('#newstore').show(); 
    } 
    else { 
     $('#update').show(); 
     $('#newstore').hide(); 
    } 
}); 
+0

Als JQuery-Objekt ja: D das '' $ -Zeichen verpassten zunächst: D –

+0

Dies zeigt sowohl die Tasten auf Seite Last –

2

Was brauchen Sie

$(window).on("load",function(){ 
    if($('#stname').val() == ""){ 
     $('#update').hide(); 
     $('#newstore').show(); 
    } 
    else { 
     $('#update').show(); 
     $('#newstore').hide(); 
    } 
}) 
+0

Dies zeigt sowohl die Tasten auf Seite laden –

+0

Dann müssen Sie beide zuerst verstecken ..füge ein css 'display: none' hinzu –

+0

' ' –

0

zusätzlich die Sichtbarkeit zu setzen, ist zu tun Beim Laden der Seite müssen Sie dies ändern, wenn der Inhalt Ihres Felds geändert wird. Sie könnten die "change" -Ereignis auf diesem Gebiet wie

var field = $("#stname"); 

field.on("change", function() { 
    $("#update").toggle(field.val() === ""); 
    $("#newstore").toggle(field.val() !== ""); 
}); 

Der Knebel() funktioniert wie hide() und show() verwenden gemeinsam einen boolean Parameter entweder Show (true) oder auszublenden (false) nehmen.

0

können Sie DOM inteand der Körperlast verwenden. Eine Seite kann nicht sicher manipuliert werden, bis das Dokument „bereit.“ jQuery erkennt diesen Bereitschaftszustand für Sie. Code, der in $ (document) enthalten ist .ready() wird nur ausgeführt, wenn die Seite Document Document Model (DOM) für die Ausführung von JavaScript-Code bereit ist. Code enthalten in $ (Fenster) .load (function() {...}) wird, sobald die gesamte Seite (Bilder oder iframes) laufen, nicht nur das DOM, bereit ist.

$(document).ready(function() { 
    $('#update').show(); 
    $('#newstore').hide(); 

    // run this if field empty 
    if($('#stname').val() == ""){ 
     $('#update').hide(); 
     $('#newstore').show(); 
    } 

});

für mehr https://learn.jquery.com/using-jquery-core/document-ready/

0

Um Ihnen eine alternative Lösung anbieten können Sie nicht in Betracht gezogen haben: dies kann in CSS erreicht werden, ohne JavaScript, um mit den adjacent sibling & attribute Selektoren und die negation pseudo-class, vorausgesetzt, die input Element teilt die gleiche unmittelbar übergeordnete wie die button Elemente oder deren Elternelement, etwa so:

#stname[value=""]~[#parent ]#update,#stname:not([value=""])~[#parent ]#newstore{ 
    display:none; 
} 
Verwandte Themen