Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Добавление required select при условии (https://javascript.ru/forum/jquery/53935-dobavlenie-required-select-pri-uslovii.html)

web-master 24.02.2015 21:08

Добавление required select при условии
 
Здравствуйте, необходимо сделать следующее: есть поле input, рядом select, так вот нужно проверять, если в input что то написали значит select ставить атрибут "required", что бы при не пустом input он был обязателен для выбора.
Сам делаю так, но что то не работает

name=trim($("input[name='percent']").val());
		if(name==null || name=="")
		{
		$('#period').removeAttr('required');
		}
		else
		{
		$('#period').attr('required');
		}

рони 24.02.2015 21:18

web-master,
строка 8 запрос значения атрибута а не установка

danik.js 24.02.2015 21:20

.attr('required', '')
или
.attr('required', 'required')
Хотя jquery для чайников спроектирована, может .attr('required', true) сканает ))))


Вообще, так то .prop('required', true) и false для отмены.

danik.js 24.02.2015 21:22

Цитата:

Сообщение от web-master
name==null

Так то val не может быть null'ом. Или твой trim() может вернуть? Вобще нафиг он нужен, если есть метод .trim() ну или $.trim() из jquery?

danik.js 24.02.2015 21:24

Уважаемый вебмастер, все твое г*вно, размазанное на 8 строк, умещается в одну строчку:
$('#period').prop('required', name != '');

web-master 24.02.2015 21:26

теперь так. не работает
name=trim($("input[name='percent']").val());
		if(name==null || name=="")
		{
		$('#period').attr('required', '')
		}
		else
		{
		$('#period').attr('required', 'required')
		}

html код
<input name="percent" type="tel" style="text-align:center !important;" value="" title="Вводите только цифры" pattern="^[0-9\,\.]+$" placeholder="Проценты" data-wrapper-class="controlgroup-textinput ui-btn">
      <select name="period" id="period">
        <option value=""></option>
        <option value="1">Сутки</option>
        <option value="2">Неделя</option>
        <option value="3">Месяц</option>
        <option value="4">Год</option>
      </select>

web-master 24.02.2015 21:37

так тоже не работает
name=$.trim($("input[name='percent']").val());
		$('#period').prop('required', name !='');

уже все перепробывал

web-master 24.02.2015 21:57

только так работает
$("input[name='percent']").change(function () {
		name=$.trim($("input[name='percent']").val());
		$('#period').prop('required', name !='');
		}).change();

рони 24.02.2015 22:01

web-master,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function() {
    $("input[name='percent']").change(function() {
        var name = $.trim(this.value);
        $("#period").prop("required", !!name)
    })
});
  </script>
</head>

<body>

<form action="http://" >

<input name="percent" type="tel" style="text-align:center !important;" value="" title="Вводите только цифры" pattern="^[0-9\,\.]+$" placeholder="Проценты" data-wrapper-class="controlgroup-textinput ui-btn">
      <select name="period" id="period">
        <option value=""></option>
        <option value="1">Сутки</option>
        <option value="2">Неделя</option>
        <option value="3">Месяц</option>
        <option value="4">Год</option>
      </select>
<input name="" type="submit" value="ok"></form>

</body>

</html>

danik.js 25.02.2015 05:29

Цитата:

Сообщение от рони
type="tel" placeholder="Проценты"

web-master, WTF? :blink:
Ты наверно имел ввиду type=number?


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