Флаг Django DTL для контактного номера не работает
У меня есть поле с именем contact. и я добавляю код страны и флаг. В модели insert они успешно добавляются. Но в модели Edit он не добавляется, поскольку я использую DTL(for) для получения данных в текстовом вводе.
Я пытался поместить скрипт после текстового ввода с помощью тега script, но он все равно не работает. Для редактирования у меня есть пользовательский цикл DTL for loop, чтобы я мог вывести выбранные данные в текстовый ввод, чтобы пользователь мог редактировать свои данные.
Here is a screenshot of the Insert model.
Here is a screenshot of the edit model where the flag is not working
Here is my code.
{% for vr in adduser.adduser.all %}
<div class="modal fade" id="userEditModal-{{forloop.counter}}" tabindex="-1" role="dialog"
aria-labelledby="largeModal" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-centered">
<div class="modal-content">
<form method="POST" action="{% url 'edituser' uid=vr.id bid=adduser.id %}" class="needs-validation" novalidate>
{% csrf_token %}
<div class="modal-header">
<h5 class="modal-title">Edit Contact Data</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<!--Form Start-->
<div class="form-row">
<div class="form-group col-md-6 smsForm">
<label for="contact1">SMS No.<span style="color:#ff0000">*</span></label>
<input type="tel" class="form-control" name="smsno" id="smsno" value="{{vr.sms_no}}"
placeholder="SMS No." pattern="^(00|\+)[1-9]{1}([0-9][\s]*){9,16}$" required />
<div class="valid-feedback">Valid.</div>
<div class="invalid-feedback">Please enter valid contact no.</div>
</div>
</div>
<!--Form End-->
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">
Close
</button>
<button id="UpdateUser" type="submit"
class="btn btn-primary">Update</button>
</div>
</form>
<div class="alert alert-info" style="display: none;"></div>
</div>
</div>
</div>
{% endfor %}
code for country code and flag in javascript
const phoneInputField = document.querySelector("#smsno");
const phoneInput = window.intlTelInput(phoneInputField, {});
window.addEventListener('load', function () {
// Get the forms we want to add validation styles to
var forms = document.getElementsByClassName('needs-validation');
// Loop over them and prevent submission
var validation = Array.prototype.filter.call(forms, function (form) {
form.addEventListener('submit', function (event) {
if (form.checkValidity() === false) {
event.preventDefault();
event.stopPropagation();
}
form.classList.add('was-validated');
}, false);
});
}, false);
$(document).ready(function () {
$('.smsForm .iti__flag-container').click(function () {
var countryCode = $('.smsForm .iti__selected-flag').attr('title');
var countryCode = countryCode.replace(/[^0-9]/g, '');
$('#smsno').val("");
$('#smsno').val("+" + countryCode + $('#smsno').val());
});
});