2016-11-18 3 views
0

Ich habe (2) jquery Autocomplete-Steuerelemente Back-to-Back. Wenn ich einen Wert in das erste Feld eingebe und auswähle und dann einen Wert in das zweite Feld einfüge und auswähle, läuft alles gut. Wenn ich dann zurück zum ersten Textfeld gehe und einen Wert eintippe, erhalte ich die Fehlermeldung vom zweiten Autovervollständigungs-Steuerelement.Jquery Ergebnisse sind inkonsistent

Irgendwelche Ideen? Dies ist das erste Textfeld

 $("#txtCIPCriteria").autocomplete({ 
     source: function (request, response) { 
      $.ajax({ 
       async: false, 
       delay: 250, 
       url: $('#hdfldPath').val(), 
       data: "{ 'Name': '" + request.term.replace(/'/g, "\&apos") + "'}", 
       dataType: "json", 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       dataFilter: function (data) { return data; }, 
       success: function (data) { 
        response($.map(data.d, function (item) { 
         return { 
          label: item.split('|')[0], 
          val: item.split('|')[1] 
          //label: item.Text, 
          //value: item.Value 
         } // end of return 
        })) // end of response 
       } // end of success 
      });  // end of ajax 
     }, // end of source 
     select: function (e, i) { 
      $("#hdfldCIPCode").val(i.item.val); 
     }, 
     change: function (event, ui) { 
       if (!ui.item) { 
        $(event.target).val(''); 
       } 
      }, 
     minLength: 2 
    });  // end of $("#txtCIPCriteria").autocomplete 

Dies ist der zweite Steuer

ist
 $("#txtBuildingsCriteria").autocomplete({ 
     source: function (request, response) { 
      $.ajax({ 
       async: false, 
       delay: 250, 
       url: $('#hdfldPath').val(), 
       data: "{ 'Name': '" + request.term.replace(/'/g, "\&apos") + "'}", 
       dataType: "json", 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       dataFilter: function (data) { return data; }, 
       success: function (data) { 
        response($.map(data.d, function (item) { 
         return { 
          label: item.split('|')[0], 
          val: item.split('|')[1] 
          //label: item.Text, 
          //value: item.Value 
         } // end of return 
        })) // end of response 
       } // end of success 
      });  // end of ajax 
     }, // end of source 
     select: function (e, i) { 
      $("#hdfldBuilding").val(i.item.val); 
      //    GetFiscalAgents1(i.item.val); 
      var CipCode = $('#hdfldCIPCode').val(); 
      var Bldg = $("#hdfldBuilding").val(); 
      var ProgType = $('#ddlProgramType').val(); 

      GetFiscalAgents1(i.item.val); 
      GetProspRegion(i.item.val); 

      //var Result = FindCIPCodeCount(CipCode, Bldg, ProgType) 
      //if (Result == 'Exists') { 
      // MsgBox('This is an active CIPCode, Building and ProgramType combination already. Please change your criteria.'); 
      //} 
      //else { 
      // $("#hdfldBuilding").val(i.item.val); 
      // GetFiscalAgents1(i.item.val); 
      // GetProspRegion(i.item.val); 
      //} 
     }, 
     change: function (event, ui) { 
        if (!ui.item) { 
         $(event.target).val(''); 
        } 
       }, 
     minLength: 3 
    });  // end of $("#txtBuildingsCriteria").autocomplete   
+0

Ich weiß nicht, zu setzen, wenn es für das Problem verwandt ist, aber Sie Versuchen Sie nicht, ein eigenes JSON zu erstellen, verwenden Sie 'JSON.stringify()' für ein Objekt. – Barmar

+0

Welchen Fehler bekommen Sie? – Barmar

+0

Auch in JSON müssen Strings mit doppelten Anführungszeichen umgeben sein, nicht einzelne Qoutes. Also '' {'Name': ...} "' ist falsch, weil 'Name' in doppelten Anführungszeichen stehen muss. – Barmar

Antwort

0

Try cache: false innerhalb Ajax Funktion

Verwandte Themen