2017-10-17 1 views
-1

Quick Hintergrund: Ich habe ein Projekt, dass ein Entwickler arbeitete vor ein paar Jahren und sein Code ist ein Alptraum, geschweige denn fast die ganze Software ist veraltet. Die JQuery im Projekt ist immer noch 1.5.2, aber ich konnte das umgehen, indem ich die Nicht-Konflikt-Option von JQuery verwendete.change() feuert auf Seite loading

Allerdings kann ich immer noch nicht scheinen, dass die Funktion change() ordnungsgemäß funktioniert - sie wird ausgelöst, wenn die Seite geladen wird. Außerdem funktioniert die Funktion On() aus irgendeinem seltsamen Grund nicht.

Hier ist der Code (unter dem Körper):

jQuery_3_2_1(document).ready(function(){ 
jQuery_3_2_1("input[id^=DepartureDay]").on('change',alert('dd')); 

Und hier ist die Nicht-Konflikt-Funktion (wenn es relevant ist):

<script type="text/javascript"> 
var jQuery_3_2_1 = $.noConflict(true); 
</script> 

Ich weiß nicht, ob es relevant ist, aber Eine Sache über den Code ist, dass der vorherige Programmierer entschieden hat, den ganzen HTML-Code mit JS-Strings zu laden. Eine andere Sache, die ich beachten sollte, ist, dass ich versuche, eine Änderung im Wert eines uikit Datepicker zu ermitteln.

Vielen Dank für Ihre Hilfe!

ich hinzufügen, eine Geige: https://jsfiddle.net/vzeuhohm/1/#&togetherjs=Sietj3k5oM Ein weiterer edit: https://jsfiddle.net/vzeuhohm/2/ Ein weiterer edit: ich den vollständigen Code in der Hoffnung anhängen, dass jemand zu verstehen, wäre in der Lage, was mit ihm nicht stimmt -

<!DOCTYPE html> 
<!-- 
To change this license header, choose License Headers in Project Properties. 
To change this template file, choose Tools | Templates 
and open the template in the editor. 
--> 
<html> 
    <head> 
     <title>TODO supply a title</title> 
     <meta charset="UTF-8"> 
     <meta name="viewport" content="width=device-width, initial-scale=1.0"> 

<link rel="stylesheet" href="uikit.docs.min.css" type="text/css"> 
<script language="javascript" src="https://getuikit.com/v2/vendor/jquery.js"></script> 
<script language="javascript" src="https://getuikit.com/v2/docs/js/uikit.min.js"></script> 
<script language="javascript" src="https://getuikit.com/v2/src/js/components/datepicker.js"></script> 

<link href="example160/css/jquery.autocomplete.css" rel="stylesheet" type="text/css" /> 
<script type="text/javascript" src="example160/js/jquery-1.5.2.min.js"></script> 
<script type="text/javascript" src="example160/js/jquery.autocomplete.js"></script> 

     <script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.slim.js"></script> 
<script type="text/javascript"> 
var jQuery_3_2_1 = $.noConflict(true); 
</script> 
     <script type="text/javascript"> 
jQuery_3_2_1(document).ready(function(){ 
    jQuery_3_2_1("[id^=DepartureDay]").ready(function(){ 
     jQuery_3_2_1("[id^=DepartureDay]").on('input',function(e){ 
      alert('ff'); 
     }); 
    }); 
}); 
     </script> 
    </head> 
    <body> 
     <form method="post"> 
      <input type="text" name="DepartureDay1" id="DepartureDay1" data-uk-datepicker="{format:'DD.MM.YYYY'}" placeholder="mm/dd/yyyy" /> 
     </form> 
     <div>TODO write content</div> 
    </body> 
</html> 
+1

jQuery_3_2_1 ("input [id^= DepartureDay]").on ('change', function() {alert ('dd');}); –

+0

Jetzt funktioniert es überhaupt nicht .. –

+0

@EliRotenberg Sie müssen mehr Details teilen, damit wir helfen können, können Sie Geige oder Schnipsel teilen? –

Antwort

0

Statt $(document).ready() zu verwenden, versuchen Sie es mit

$(window).on('load', function() { 
    $("input[id^=DepartureDay]").on('change',alert('dd'); 
}); 

EDIT

var jQuery_3_2_1 = $.noConflict(true); 
jQuery_3_2_1(document).ready(function(){ 
    jQuery_3_2_1('[id^=DepartureDay]').on('input', function(){alert('dd');}); 
}); 

Statt .on('change'... verwenden .on('input'...).

Sie müssen auch function(){alert('dd');} statt nur alert('dd') sagen.

+0

Hat nicht funktioniert. Ich füge eine Beta-Version des Codes: https://jsfiddle.net/vzeuohm/1/#&togetherjs=Sietj3k5oM –

+0

Versuchen Sie die neue Bearbeitung und sehen, ob das funktioniert, müssen Sie auch die jQuery-Bibliothek hinzufügen auf JSFiddle. –

0

Sie versuchen, das Ergebnis des Aufrufs alert('dd') als Change-Handler zu verwenden.

Sie wahrscheinlich die Warnung in einer Funktion wickeln möchten, und diese Funktion als Handler stattdessen übergeben:

jQuery_3_2_1("input[id^=DepartureDay]").on("change", function() { 
    alert("dd"); 
}); 
+0

Es wurden noch keine Ergebnisse gefunden. https://jsfiddle.net/vzeuohm/2/ –

+0

Too können Fehler in dieser jsfiddle: Sie haben nicht 'function() {...}' um Ihre bereit Callback gewickelt. Sie haben 'ready()' anstelle von 'ready (function() {...})' aufgerufen, und Sie haben jQuery nicht unter dem von Ihnen verwendeten Namen importiert. – searlea

0

try Code folgende

Textbox Änderungsereignis nicht ausgelöst, bis Textbox verliert Fokus.

, deshalb habe ich beide Beispiel Entsendung bin

jQuery_3_2_1(document).ready(function(){ 
 
    jQuery_3_2_1("input[id^='DepartureDay']").on("change", function() { 
 
     alert("your change event is working !!!"); 
 
    });  
 
}); 
 
jQuery_3_2_1("input[id^='DepartureDay2']").on('change keyup paste', function() { 
 
    console.log('your change/keyup event is working !!!'); 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"> 
 

 
</script> 
 
<script type="text/javascript"> 
 
var jQuery_3_2_1 = $.noConflict(true); 
 
</script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form method="post"> 
 
    <input type="text" name="DepartureDay" id="DepartureDay" /> 
 
    <input type="text" name="DepartureDay2" id="DepartureDay2" /> 
 
</form>

Verwandte Themen