Я взял этот файл из https://jsfiddle.net/emkey08/zgvtjc51, попробуйте с моим Администратором Django .код
if (!$) {
$ = django.jQuery;
}
$(function($) {
$.fn.inputFilter = function(inputFilter) {
return this.on("input keydown keyup mousedown mouseup select contextmenu drop", function() {
if (inputFilter(this.value)) {
this.oldValue = this.value;
this.oldSelectionStart = this.selectionStart;
this.oldSelectionEnd = this.selectionEnd;
} else if (this.hasOwnProperty("oldValue")) {
this.value = this.oldValue;
this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd);
}
});
};
}(django.jQuery));
$("#id_fin").inputFilter(function(value) {
return /^\d*$/.test(value); });
Теперь этот код загружается, но не работает, но работает из консоли.Были другие, кто сталкивался с той же проблемой, и в качестве предлагаемых ответов было перенести сценарий в конец DOM.change_form.html
было расширено, как показано ниже.
{% extends "admin/change_form.html" %}
{% load static %}
{% block admin_change_form_document_ready %}{{ block.super }}
<script type="text/javascript" src="{% static 'prop/js/number_validate.js' %}"></script>
{% endblock %}
Тем не менее конечный результат тот же.Может кто-нибудь что-то подсказать.
$.fn.inputFilter = function (inputFilter) {
return this.on("input keydown keyup mousedown mouseup select contextmenu drop", function () {
if (inputFilter(this.value)) {
this.oldValue = this.value;
this.oldSelectionStart = this.selectionStart;
this.oldSelectionEnd = this.selectionEnd;
} else if (this.hasOwnProperty("oldValue")) {
this.value = this.oldValue;
this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd);
}
});
};
$(function () {
$("#id_fin").inputFilter(function (value) {
return /^\d*$/.test(value);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Integer (both positive and negative 123):<input id="id_fin">