Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Забрать значение из select (https://javascript.ru/forum/dom-window/34419-zabrat-znachenie-iz-select.html)

arahmanov 04.01.2013 16:01

Забрать значение из select
 
Проблема в следующем, на странице есть динамическая форма с селекторами.
их id = ispol1
id = ispol2 итд

мне нужно создать переменную с их значениями или текстом что я делал :

var ispol1= $("#ispol1 option:selected").text(); не работает 
var ispol1 = $("#ispol1").options[ispol1.selectedIndex].value); не работает



не пойму что то. Через DOM обращался к форме потом к селектору, тоже самое... я в панике...

arahmanov 04.01.2013 16:25

var ispol1= $("select :selected").val()
- забирает значение но только из одного селектора... как привязать к id ?

рони 04.01.2013 16:33

Цитата:

Сообщение от arahmanov
var ispol1= $("#ispol1 option:selected").text(); не работает

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

arahmanov 04.01.2013 16:39

Цитата:

Сообщение от рони (Сообщение 225111)
работает!!! либо вы пытаитесь получить данные до того как селектор появится на странице


да данные я пытаюсь получить до того как сформирован силектор...но

этот вариант, мне показывает что значение не определенно ...если еще селектора нет

var ispol1= $("select :selected").val()


есть вариант обратиться к селектору напрямую по его id ?

Deff 04.01.2013 16:39

Цитата:

Сообщение от arahmanov
да данные я пытаюсь получить до того как сформирован силектор...но

$(window).load(function () {
  var ispol =[];
  $("#ispol"+i+" option:selected").each(function (i) {
      ispol[i]= $this).val();
  });
alert(ispol)
});

Может так ?
(А каково условие формирования ?

Hekumok 04.01.2013 16:41

arahmanov, всё работает
<head><script src="http://code.jquery.com/jquery-1.8.3.min.js"></script><body>
<form id="ispol1">
<select>
<option>1</option>
<option>2</option>
</select>
</form>
<script>
alert($("#ispol1 option:selected").html()) ;
</script></body>

arahmanov 04.01.2013 16:49

Цитата:

Сообщение от Hekumok (Сообщение 225115)
arahmanov, всё работает
<head><script src="http://code.jquery.com/jquery-1.8.3.min.js"></script><body>
<form id="ispol1">
<select>
<option>1</option>
<option>2</option>
</select>
</form>
<script>
alert($("#ispol1 option:selected").html()) ;
</script></body>

да так все супер, кроме одного что у меня в одной форме много селекторов ? то есть как мне обратиться к селектору с id = ispol1
и селектору id = ispol2

Hekumok 04.01.2013 16:52

<head><script src="http://code.jquery.com/jquery-1.8.3.min.js"></script><body>
<form>
<select id="ispol1">
<option selected>1</option>
<option>2</option>
</select>
<select id="ispol2">
<option>1</option>
<option selected>2</option>
</select>
</form>
<script>
alert($("#ispol1 option:selected").html()) ;
alert($("#ispol2 option:selected").html()) ;
</script></body>

arahmanov 04.01.2013 16:58

Цитата:

Сообщение от Hekumok (Сообщение 225118)
<head><script src="http://code.jquery.com/jquery-1.8.3.min.js"></script><body>
<form>
<select id="ispol1">
<option selected>1</option>
<option>2</option>
</select>
<select id="ispol2">
<option>1</option>
<option selected>2</option>
</select>
</form>
<script>
alert($("#ispol1 option:selected").html()) ;
alert($("#ispol2 option:selected").html()) ;
</script></body>

Не знаю в чем у меня причина если к форме обращаюсь то с одним селектором работает, а если напрямую к селектору то не работает

arahmanov 04.01.2013 17:03

форма у меня с
id = form1

var ispol1= ($("#form1 option:selected").html()) ;
так работает но забирает значения из первого селектора
если так
var ispol1= ($("#ispol1 option:selected").html()) ;
то значение null
если так var ispol1= ($("#form1.ispol1  option:selected").html())
то не работает

Hekumok 04.01.2013 17:05

может, так
var ispol1= ($("#form1 #ispol1 option:selected").html())

arahmanov 04.01.2013 17:11

Цитата:

Сообщение от Hekumok (Сообщение 225124)
может, так
var ispol1= ($("#form1 #ispol1 option:selected").html())

увы
и так пробовал
var ispol1= ($("#document.form1.ispol1 option:selected").html()) ;


тоже не хочет :cray:

Hekumok 04.01.2013 17:15

arahmanov, приведите код этой формы

arahmanov 04.01.2013 17:18

<select id=\"ispol"+curFieldNameId+"[]\" name=\"ispol"+curFieldNameId+"\"><option value=\"нет исполнителя\">нет исполнителя</option><option value=\"Kolya\">Nikolay</option><option value=\"VoVa\">Vova</option> <option value=\"Vlad\">Vlad</option><option value=\"Ruslan\">Ruslna</option>  </select>

Deff 04.01.2013 17:22

<head>
<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
</head>
<body>

<form>
  <select id="ispol1">
    <option selected>1</option>
    <option>2</option>
  </select>
  <select id="ispol2">
     <option>1</option>
     <option selected>2</option>
  </select>
</form>


<script>
$(window).load(function () {
  var ispol =[];
  $("select[id^='ispol']").each(function () {
      var N = parseInt($(this).attr("id").replace("ispol",""));
      ispol[N]=$(this).find("option:selected").val();
  });


  $("select[id^='ispol']").change(function () {
      var N = parseInt($(this).attr("id").replace("ispol",""));
      ispol[N]=$(this).find("option:selected").val();
for(var i in ispol){
alert(ispol[i]);
}
  });
for(var i in ispol){
alert(ispol[i]);
}
});
</script>

</body>

Тут нужно забирать данные при полном заполнении формы (он жа может переключать селекты ) т.е при и нажатии кнопки отправки формы

Hekumok 04.01.2013 17:25

arahmanov, у вас же id получается ispol1[]

arahmanov 04.01.2013 17:31

Цитата:

Сообщение от Hekumok (Сообщение 225134)
arahmanov, у вас же id получается ispol1[]

да не .. id на выходе ispol1 ispol2 итд остальные данные же нормально приходят только гребанный селектор ...

arahmanov 04.01.2013 17:33

Цитата:

Сообщение от Deff (Сообщение 225132)
<head>
<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
</head>
<body>

<form>
  <select id="ispol1">
    <option selected>1</option>
    <option>2</option>
  </select>
  <select id="ispol2">
     <option>1</option>
     <option selected>2</option>
  </select>
</form>


<script>
$(window).load(function () {
  var ispol =[];
  $("select[id^='ispol']").each(function () {
      var N = parseInt($(this).attr("id").replace("ispol",""));
      ispol[N]=$(this).find("option:selected").val();
  });


  $("select[id^='ispol']").change(function () {
      var N = parseInt($(this).attr("id").replace("ispol",""));
      ispol[N]=$(this).find("option:selected").val();
for(var i in ispol){
alert(ispol[i]);
}
  });
for(var i in ispol){
alert(ispol[i]);
}
});
</script>

</body>

Тут нужно забирать данные при полном заполнении формы (он жа может переключать селекты ) т.е при и нажатии кнопки отправки формы


проблема в том что форма не будет заполнена не когда..и сколько селекторов у нас будет тоже не ясно.. но даже не в этом суть.. а суть в том что мне нужно забрать эти значения в функцию отправки данных , а там я с синаксисом все время хромаю и у меня вообще все перестает работать .. если я не жестко указываю переменную

arahmanov 04.01.2013 17:39

Цитата:

Сообщение от Hekumok (Сообщение 225134)
arahmanov, у вас же id получается ispol1[]

да ты прав :) спасибо


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