2010-12-14 4 views
0

Ich habe ein Formular, das mit der .load() -Methode geladen wird.Das Laden von Seitenfragmenten mit .load() schließt embedded Javascript aus

$(function() { 
    $('#items,#button-search').hide(); 
    $("#companies").click(function() { 
     $(this).attr("value",""); 
     $('#address,#new-company-form').empty(); 
    }); 
    $("#companies").autocomplete({ 
     source: ";companies", 
     minLength: 2, 
     select: function(event, ui) { 
      if(ui.item.id == "create-new-company") { 
       // call the new company form 
       $('#address').empty(); 
       $('#new-company-form').load(';company_form #autoform'); 
      } 
      else 
      { 
       $('#new-company-form').empty(); 
       $.ajax({ 
        type: 'GET', 
        url: ';addresses?company=' + ui.item.id, 
        dataType: 'json', 
        // process the addresses 
        success: function(json) { 
         var opts = ''; 
         $.each(json, function(k, v) { 
          opts += '<option>' + v + '</option>'; 
         }); 
         $('#address').html('<select>' + opts + '</select>'); 
        } 
       }); //end ajax call to address 
      } 
     } // end select address 
    }); // end autocomplete 
}); // end function 

on line 15, ich habe

$('#new-company-form').load(';company_form #autoform'); 

wenn ich die #autoform JavaScript entfernen, die in den ist; company_form html funktioniert, sonst wird es nicht geladen.

Wie bekomme ich das zur Arbeit?

dank

+0

Was ist mit den Semikolons? –

+0

ist es Teil des Rahmens, den ich benutze. http://hforge.org/itools – khinester

Antwort

0

Der erste Parameter der .load() Methode ist die URL. Die URL, die Sie hier benötigen, ist wahrscheinlich nur . Was möchten Sie erreichen, indem Sie #autoform in der URL übergeben?

Wenn es ohne die #autoform funktioniert, warum entfernen Sie es nicht einfach?

+0

Ich brauche das #autoform, weil ich nicht die gesamte Vorlage Seite laden möchte – khinester

0

Ja, er möchte nur das Seitenfragment laden. Das erste Argument ist in der Tat URL, also geben Sie einfach den Namen der Seite ein, auf der sich 'company_form' befindet, und fügen Sie dann das gewünschte Fragment hinzu. So soll es in etwa so aussehen ...

$('#new-company-form').load('company_form.php #autoform'); 

Ich denke, die einzige Änderung ist, um die Erweiterung zu ‚company_form‘ hinzufügen

+0

ja, ich weiß. Mein Problem ist, dass jedes Javascript, das ich im #autoform-Fragment habe, nicht funktioniert, wenn es über .load() aufgerufen wird. – khinester

Verwandte Themen