Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Запрет выбора option value="бронь" если в input value="0000-00-00" (https://javascript.ru/forum/jquery/64862-zapret-vybora-option-value%3D-bron-esli-v-input-value%3D-0000-00-00-a.html)

ufaclub 09.09.2016 19:19

Запрет выбора option value="бронь" если в input value="0000-00-00"
 
<select name="status">
<option value="свободна">cвободна </option>
<option value="вторичная продажа">вторичная продажа </option>
<option value="бронь">бронь </option>
<option value="золотая бронь">золотая бронь</option>
</select>

<input type="text" name="brondo" value="0000-00-00">



Хочу сделать чтобы через JQ при выборе <option value="бронь"> выводилось через alert "Сначала введите дату брони" если в <input name="brondo"> стоит значение 0000-00-00 а если другое то просто ставилось бы значение бронь.


Вот рабочий пример html кода

https://jsfiddle.net/ufaclub/50vc8vy6/

Помогите пожалуйста!

laimas 09.09.2016 19:23

Цитата:

Сообщение от ufaclub
а если другое то просто ставилось бы значение бронь

Другое это какое, можно и "абвгд" или же все таки должно соответствовать формату даты?

ufaclub 09.09.2016 19:27

по сути условие одно не должно равняться 0000-00-00. В этом поле стоит плагин выбора даты. и руками там ничего не ввести.

Поэтому если значение стоит 0000-00-00. то сделать чтобы при выборе селекта на статус бронь был алерт мол сначала введи дату брони (ну и само собой не позволяло выставить статус бронь пока человек не введет дату)

laimas 09.09.2016 19:35

Ну так проверяйте тогда значение поля, в чем проблема?

$('select').change(function() {
        if(this.value=="бронь" && $('input').val()=="0000-00-00") alert('text')
    })


А что, такие значения как "вторичная продажа" и т.п. и получает сервер? Кошмар. )

ufaclub 09.09.2016 19:49

"вторичная продажа" и т.п. и получает сервер? - отдельный статус который вводит клиент. тут все нормально.

Так. Спасибо все работает.
jQuery('select[name = status]').change(function() {
        if(this.value=="бронь" && jQuery('input[name = brondo]').val()=="0000-00-00") alert('text')
    })


но статус бронь все равно ставиться. т.е по сути только срабатывает alert('text')

как бы мне вернуть значение то что стояло на селекте?

laimas 09.09.2016 19:54

Цитата:

Сообщение от ufaclub
отдельный статус который вводит клиент. тут все нормально.

Даже сложно представить, что тогда не нормально, если оперировать таким ужасом как "вторичная продажа", "бронь". Вы наверное не подозреваете, что в базе существует тип данных ENUM?

$('select').change(function() {
        if(this.value=="бронь" && $('input').val()=="0000-00-00") {
            alert('text');
            this.options[0].selected = 1; 
        }
    })


Или обязательно установить предыдущий выбор?

ufaclub 09.09.2016 19:57

Спасибо! все работает! и последний вопрос

как сделать чтобы проверялось и значение val()=="0000-00-00" ИЛИ val()==""

т.е на пустое значение тоже должна быть аналогичная реакция.

как в php

val=="0000-00-00" OR val==""

laimas 09.09.2016 20:02

var v = $.trim($('input').val());
        if(this.value=="бронь" && !v || v=="0000-00-00") ...

ufaclub 09.09.2016 20:05

Спасибо! Я решил свою проблему!!! :)

laimas 09.09.2016 20:10

Цитата:

Сообщение от ufaclub
Я решил свою проблему!!!

решите проблему с представлением таких ужасных значений в списке. Ну это же мракобесие, неужто не понятно, что это усложнение кода на сервере, да и ошибок можно нахватать по самые уши?


Часовой пояс GMT +3, время: 11:41.