0.0.33 forms
This commit is contained in:
@@ -61,7 +61,7 @@ function select_tab_profile (el,url,owner_type=null, check_orders_required) {
|
||||
document.querySelector("#ru_lang").href = confirm_url_f_lang_ru
|
||||
document.querySelector("#en_lang").href = confirm_url_f_lang_en
|
||||
|
||||
daterangepickerInit($('.w_daterangepicker'), daterangepickerInit)
|
||||
datarangepickerinitAll()
|
||||
// let header = document.querySelector("header")
|
||||
// header.scrollIntoView({
|
||||
// behavior: "smooth",
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
function chooseCheckbox(el) {
|
||||
if (!el) return;
|
||||
resetFieldError(el);
|
||||
|
||||
let $parent = el.closest('.field_container');
|
||||
let $checkbox = $parent.querySelector('.checkbox')
|
||||
@@ -128,4 +129,63 @@ function selectInputWContainer (el, callback) {
|
||||
$input.focus()
|
||||
|
||||
if (callback) callback(el);
|
||||
}
|
||||
|
||||
function resetFieldError (el){
|
||||
if (!el) return;
|
||||
let $field = el.closest('.field_container');
|
||||
if (!$field) return;
|
||||
|
||||
let $error = $field.querySelector('.error_container');
|
||||
if (!$error) return;
|
||||
|
||||
if (!checkFieldEmpty($field)){
|
||||
$error.remove()
|
||||
}
|
||||
}
|
||||
|
||||
function checkFieldEmpty($field) {
|
||||
if (!$field) return;
|
||||
let empty = true;
|
||||
|
||||
switch ($field.dataset.type) {
|
||||
case 'checkbox':
|
||||
let $checkbox = $field.querySelector('.checkbox');
|
||||
let c_value = $checkbox.classList.contains('checked');
|
||||
if (c_value) empty = false;
|
||||
|
||||
break;
|
||||
|
||||
case 'radio':
|
||||
let $radio = $field.querySelector('.radio.checked');
|
||||
if ($radio) empty = false;
|
||||
|
||||
break;
|
||||
|
||||
case 'location':
|
||||
let $location = $field.querySelector('input');
|
||||
let l_value = $location.dataset.id;
|
||||
|
||||
if (l_value) empty = false;
|
||||
break;
|
||||
|
||||
case 'input':
|
||||
let $input = $field.querySelector('input');
|
||||
if ($input.value) empty = false;
|
||||
|
||||
break;
|
||||
|
||||
case 'textarea':
|
||||
let $textarea = $field.querySelector('textarea');
|
||||
if ($textarea.value) empty = false;
|
||||
|
||||
break;
|
||||
|
||||
case 'date':
|
||||
let $date = $field.querySelector('input');
|
||||
if ($date.value) empty = false;
|
||||
|
||||
break;
|
||||
}
|
||||
return empty;
|
||||
}
|
||||
@@ -42,7 +42,7 @@ function makeMoverOrder(form) {
|
||||
|
||||
$(res.responseJSON.html).insertAfter($($title))
|
||||
|
||||
daterangepickerInit($('.w_daterangepicker'), daterangepickerInit)
|
||||
datarangepickerinitAll()
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ function makePosterOrder(form) {
|
||||
|
||||
$(res.responseJSON.html).insertAfter($($title))
|
||||
|
||||
daterangepickerInit($('.w_daterangepicker'), daterangepickerInit)
|
||||
datarangepickerinitAll()
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
@@ -29,10 +29,15 @@ function setLocalSets() {
|
||||
return locale_lang
|
||||
}
|
||||
|
||||
$(function (){daterangepickerInit($('.w_daterangepicker'), daterangepickerInit)})
|
||||
function datarangepickerinitAll(){
|
||||
$('.w_daterangepicker').each(function () {
|
||||
daterangepickerInit(this, daterangepickerInit)
|
||||
})
|
||||
}
|
||||
|
||||
function daterangepickerInit(el, callback) {
|
||||
$('.date_range_input_cont input').daterangepicker({
|
||||
let $datarangepicker = el.querySelector('input')
|
||||
$($datarangepicker).daterangepicker({
|
||||
"autoapply": true,
|
||||
"linkedCalendars": false,
|
||||
"singleDatePicker": true,
|
||||
@@ -43,8 +48,9 @@ function daterangepickerInit(el, callback) {
|
||||
}, function (start, end, label) {
|
||||
let $parent = el.closest('.w_daterangepicker')
|
||||
if (last_opened_daterangepicker) $parent = last_opened_daterangepicker.closest('.w_daterangepicker');
|
||||
let $input = $parent.find(".date_range_input_cont input")
|
||||
$input.val(start.format('DD.MM.YYYY'));
|
||||
let $input = $parent.querySelector(".date_range_input_cont input")
|
||||
$input.value = start.format('DD.MM.YYYY');
|
||||
resetFieldError(el);
|
||||
if (callback) callback(el)
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
function chooseRadioInput(el, callback){
|
||||
if (!el) return;
|
||||
|
||||
let $parent = el.closest('.w_radio_inputs');
|
||||
if (!$parent) return;
|
||||
|
||||
@@ -13,6 +14,8 @@ function chooseRadioInput(el, callback){
|
||||
$radio.classList.toggle("checked");
|
||||
|
||||
let el_name = $parent.dataset.name;
|
||||
|
||||
resetFieldError(el);
|
||||
if (callback) callback(el, el_name)
|
||||
}
|
||||
|
||||
|
||||
@@ -96,7 +96,8 @@ function selectCountry(el, callback) {
|
||||
$input.dataset.name = country_data.full_name;
|
||||
$input.dataset.id = country_data.id;
|
||||
|
||||
closeSelectCountry(el)
|
||||
closeSelectCountry(el);
|
||||
resetFieldError(el);
|
||||
}
|
||||
|
||||
function resetCountrySelect(el, callback) {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
function textareaInputE (el, callback){
|
||||
if (!el) return;
|
||||
|
||||
resetFieldError(el);
|
||||
let $counter = $(".symbols_counter")[0]
|
||||
let $parent = el.closest(".w_textarea_w_counter")
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
<div class="field_container" data-type="input" style="width: 100%" data-name="phone">
|
||||
{% trans "Если вы оставите это поле пустым - перевозчики смогут только написать вам в личные сообщения на нашем сайте TripWB.com" as attention_phone %}
|
||||
<label for="id_cargo_type">{% trans "Контактный номер телефона, по которому с Вами могут связаться перевозчики" %}</label>
|
||||
<input class="half" style="height: unset;" type="text" name="phone" id="id_phone" placeholder="{% trans 'Укажите телефон' %}"{% if form.initial.phone %} value="{{ form.initial.phone }}" {% endif %}>
|
||||
<input class="half" style="height: unset;" type="text" name="phone" id="id_phone" placeholder="{% trans 'Укажите телефон' %}"{% if form.initial.phone %} value="{{ form.initial.phone }}" {% endif %} oninput="resetFieldError(this);">
|
||||
{% if form.errors.phone %}<div class="error_container">{{ form.errors.phone.0 }}</div>{% endif %}
|
||||
{% include 'v2/widgets/w_pay_attention.html' with text=attention_phone %}
|
||||
</div>
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
<div class="field_container" data-type="input" style="width: 100%" data-name="phone">
|
||||
{% trans "Если вы оставите это поле пустым - перевозчики смогут только написать вам в личные сообщения на нашем сайте TripWB.com" as attention_phone %}
|
||||
<label for="id_cargo_type">{% trans "Контактный номер телефона, по которому с Вами могут связаться перевозчики" %}</label>
|
||||
<input class="half" style="height: unset;" type="text" name="phone" id="id_phone" placeholder="{% trans 'Укажите телефон' %}"{% if form.initial.phone %} value="{{ form.initial.phone }}" {% endif %}>
|
||||
<input class="half" style="height: unset;" type="text" name="phone" id="id_phone" placeholder="{% trans 'Укажите телефон' %}"{% if form.initial.phone %} value="{{ form.initial.phone }}" {% endif %} oninput="resetFieldError(this);">
|
||||
{% if form.errors.phone %}<div class="error_container">{{ form.errors.phone.0 }}</div>{% endif %}
|
||||
{% include 'v2/widgets/w_pay_attention.html' with text=attention_phone %}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user