Я хочу: $('#abc').val(123);впоследствии:

установить выбранное значение поля выбора, если опция с этим значением не существует

1258 просмотра

6 ответа

901 Репутация автора

Я хочу установить выбранное значение поля выбора, если оно существует, и добавить его в поле выбора, если оно не существует.

Как мне это сделать?

У меня есть:

<select id="abc" name="abc">
</select>

Я хочу:

  $('#abc').val(123);

впоследствии:

<select id="abc" name="abc">
<option value="123" selected>
</select>
Автор: Ferenjito Источник Размещён: 18.07.2016 09:03

Ответы (6)


5 плюса

1393 Репутация автора

Вы можете добавить элемент

var html = '<option value="123">123</option>';
jQuery("#abc").append(html);
Автор: Prashant Patil Размещён: 18.07.2016 09:08

1 плюс

6568 Репутация автора

Во-первых, вы можете использовать appendметод jQuery для добавления любого html-элемента на вашу страницу. В этом случае вам может понадобиться добавить optionэлемент. Итак, первое, что вам нужно, это проверить, существует ли эта опция. Если это не так, вам нужно добавить его в selectэлемент. В обоих случаях (независимо от того, существует он или нет) вы можете установить значение, выбранное с помощью val()метода:

$(document).ready(function(){
  select123();
});//document ready

function select123()
{
  if( ! $("#abc option[value=123]").length )
  {
    $("#abc").append('<option value="123">123</option>');
  }
  $("#abc").val("123");
}//select123
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select id="abc" name="abc">
</select>

Автор: Mohit Bhardwaj Размещён: 18.07.2016 09:10

1 плюс

11958 Репутация автора

var valueExists = $("#abc option[value=123]");
if(!valueExists){

    ("#abc").append('<option>123</option>')
}



$("#abc option[value=123]")

вернет пустой массив, который оценивается, ""так что это ложно, иначе возвращается массив объекта html Collection

Автор: RIYAJ KHAN Размещён: 18.07.2016 09:11

1 плюс

404 Репутация автора

Решение

Как насчет приведенного ниже кода.

if($('#abc option[value=' + testValue + ']').length === 0) {
    $('#abc').append('<option value="' + testValue + '">' + testValue + '</option>');
}
Автор: Krishnakumar_Muraleedharan Размещён: 18.07.2016 09:12

1 плюс

124217 Репутация автора

Проверьте, существует ли значение, используя, $("#abc option[value='123']").length > 0и если нет, добавьте.

$(function(){
  var val = '1234';
  
  if($("#abc option[value='123']").length > 0){
    alert('present')
  }
  else {
   var s = '<option value=' + val + '>' + val + '</option>';
   $('#abc').append(s);
  }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<select id="abc" name="abc">
<option value="123" selected>
</select>

Автор: Shubham Khatri Размещён: 18.07.2016 09:13

0 плюса

8366 Репутация автора

Ниже код может помочь вам начать.

  1. Если значение уже присутствует, установите его в качестве выбранного параметра.
  2. Еще добавьте значение в раскрывающемся списке.

Сценарий 1: значение уже существует в раскрывающемся списке. Так что просто выберите его.

$(function() {
  var val = '1';
  var exists = false;

  $('#abc option').each(function() {
    if (this.value == val) {
      $('#abc').val(val);
      exists = true;
      return false;
    }
  });

  if (exists == false) {
    $('#abc').append('<option value="' + val + '" selected>' + val + '</option>');
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="abc" name="abc">
  <option value="1">1</option>
  <option value="2">2</option>
</select>


Сценарий 2: значение не в раскрывающемся списке. Так что добавь это.

$(function() {
  var val = '123';
  var exists = false;

  $('#abc option').each(function() {
    if (this.value == val) {
      $('#abc').val(val);
      exists = true;
      return false;
    }
  });

  if (exists == false) {
    $('#abc').append('<option value="' + val + '" selected>' + val + '</option>');
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="abc" name="abc">
  <option value="1">1</option>
  <option value="2">2</option>
</select>

Автор: Pugazh Размещён: 18.07.2016 09:16
Вопросы из категории :
32x32