2016-04-07 2 views
0

Mein URL-Link, wie so ist http://localhost:50255/product/filter/manufacturer/3nicht Eigenschaft lesen ‚nachziehen‘ von undefined in jquery

und auf Dokument laden, versuche ich, wie so den manufacturer 3 Wert zu setzen

$(window).load(function(){ 
    var pathname = window.location.pathname.split("/"); 
    var filter = pathname[pathname.length-3]; 
      if(filter === 'filter'){ 
       var option = pathname[pathname.length-2]; 
       var id = pathname[pathname.length-1]; 
       $("#ManufacturerID").val(id).trigger("change"); 
      } 
     }); 

aber ich habe den Fehler

nicht Eigentum lesen 'nachziehen' undefinierter

Mein HTML-Markup ist

<div class="select2-container select2-container-multi js-example-basic-multiple col-sm-12" id="s2id_ManufacturerID" style="border: 1px solid rgba(0, 0, 0, 0.14902); display: block;"> 
     <ul class="select2-choices"> 
      <li class="select2-search-field">  
      <label for="s2id_autogen6" class="select2-offscreen"></label>  
      <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="select2-input select2-default" id="s2id_autogen6" placeholder="" style="width: 1004px;"> 
      </li> 
     </ul> 
     <div class="select2-drop select2-drop-multi select2-display-none select2-drop-active"> 
     <ul class="select2-results"> 
      <li class="select2-no-results">No matches found</li> 
     </ul> 
     </div> 
    </div> 


    <select id="ManufacturerID" class="js-example-basic-multiple col-sm-12" multiple="multiple" placeholder="Κατασκευαστές" style="border: 1px solid rgba(0, 0, 0, 0.14902); display: none;" tabindex="-1"> 
     <option value="1">manufacturer 1</option> 
     <option value="2">manufacturer 2</option> 
     <option value="3">manufacturer 3</option> 
    </select> 

Was ich hier falsch mache?

UPDATE dank der Kommentare, kommt der Fehler aus der folgenden Funktion

$(function() { 
      $('select').select2() 
      .on("change", function (e) { 
       var id = '#sel' + $(this).attr("id"); 
       var array = e.val.join(","); 
       $(id).val(array); 
       PostIt(); 
      }) 
     }); 
+3

zu ersetzen. Ich glaube nicht, dass der JS-Code, den Sie gepostet haben, den Fehler erzeugt, den Sie gerade erleben. Der Fehler weist darauf hin, dass Sie versuchen, eine Eigenschaft namens 'join' für ein Objekt zu lesen, das' nicht definiert' ist. Nichts in Ihrem Code zeigt jedoch, wo Sie versuchen, diese Join-Eigenschaft oder von welchem ​​Objekt zu lesen. – wing

+1

Sie lösen ein Änderungsereignis aus, haben Sie einen Änderungshandler für dieses Element, der den Fehler auslösen könnte? –

+0

@wing rettete mich über einen Tag der Suche. Jetzt muss ich herausfinden, warum das e.val nicht definiert ist. – OrElse

Antwort

1

ich Ihr Problem glauben, dass e.val nicht definiert ist. Versuchen Sie, es durch e.target.value

Verwandte Themen