2016-06-06 12 views
0

ich an verschiedenen Strategien ausgesehen haben für dieses und das, was ich habe Versuch fehlschlägt (.load) unten ..Asp.net MVC jQuery - wie kann ich ein Skript automatisch beim Laden der Seite ausgeführt

Ich versteckt ein paar von Textfeldern und deren Labels, wenn meine Seite standardmäßig geladen wird.

Wenn das Ansichtsmodell jedoch eine Firma darstellt - company = "true", dann möchte ich, dass diese Textfelder angezeigt werden und einige der Labels geändert werden, da es sich um einen Unternehmensdatensatz und nicht um einen privaten Clienteintrag handelt.

habe ich dies für im Wesentlichen die gleiche Seite, wenn ich einen Client erschaffe:

$(document).ready(function() { 
    if ($('#Company').length)   // Check for ID 
    { 
     $(window).load(function() { 
      $("#Company").click(function() { 
       if ($(this).is(':checked')) { 
        $("#FirstNameLabel").html('Contact First Name:'); 
        $("#LastNameLabel").html('Contact Last Name:'); 
        $("#phoneLabel").html('Company Phone:'); 
        $("#details").html('<strong>Company Details</strong>'); 
        $("#bankDetails").html('<strong>Company Bank Details</strong>'); 
        $("#hideOption").removeAttr("hidden"); 
       } else { 
        $("#FirstNameLabel").html('First Name:'); 
        $("#LastNameLabel").html('Last Name:'); 
        $("#phoneLabel").html('Home Phone:'); 
        $("#details").html('<strong>Client Personal Details</strong>'); 
        $("#bankDetails").html('<strong>Client Bank Details</strong>'); 
        $("#hideOption").attr("hidden", "hidden"); 
       } 
      }); 
     }); 
    }; 
}); 

So ändern Sie die Firma Checkbox und eine Reihe von Etiketten klicken und die beiden Textfelder zeigen. Klicke erneut darauf und sie kehren zurück. Das ist in Ordnung, wenn Sie mit einer leeren Seite beginnen, aber dies ist die Bearbeitungsseite und ich lade die Daten vor. Im Falle eines Unternehmens brauche ich die Textfelder zu zeigen und die Etiketten zu ändern.

Wie Sie vielleicht bemerkt haben, habe ich versucht, $(window).load zu verwenden, aber es funktioniert nicht.

Des Weiteren ist dieser Code in der Datei site.js unter wwwroot und nicht auf der Seite, so habe ich $('#Company').length) verwendet zu überprüfen, ob die ID zuerst existiert ...

Wie führe ich dieses Skript auf der Seite wenn es lädt?

Es sollte ausgeführt werden und wenn das Kontrollkästchen des Unternehmens aktiviert ist, zeigen Sie die Textfelder und ändern Sie die Bezeichnungen.

+0

Sie Skript, um den '.click ist der Umgang mit()' Ereignis, wenn das Kontrollkästchen lösen, so dass Sie verwenden '("# Gesellschaft") $ könnten. trigger ('click'); '(und entfernen' $ (window) .load (function() {') –

+0

Nicht sicher, wie man das benutzt. Platzierte diese Zeile innerhalb der" if $ ('# Company'). Länge) {...} "und es löst nicht aus. Ich habe den Cache gelöscht, um sicherzustellen, dass die Datei site.js neu geladen wurde. – si2030

+0

können Sie damit umgehen C# Eigenschaft selbst senden Sie einfach eine boolesche Eigenschaft und überprüfen Sie, ob es rue oder nicht wahr ist, dann zeigen Sie die Textfelder, es wird auch sicher sein. –

Antwort

0

Sie können einen Klassennamen in Ihr Kontrollkästchen-Steuerelement einfügen, und Sie können die folgende Änderungsfunktion verwenden, außerdem können Sie Ihren Code-Satz innerhalb dieser Überprüfung anwenden (wenn-sonst).

<input type="checkbox" class="className" name="Country" value="Country"> Country<br> 

    $(".className").change(function() { 
      if (this.checked) { 
    //Put your code here 
    } 
    else{ 
    //Put your code here 
    } 

    }); 

Hoffen, dass Ihr Problem durch diesen Code :-)

Verwandte Themen