Идентификация динамически генерируемых элементов - PullRequest
0 голосов
/ 28 марта 2010

В следующем коде,

<script>
 function val()
 {
    //get alltextarea to validate
  }
$(document).ready(function() {
var html= '<form>'
html += '<textarea name="test" id="test"';
    html += '<textarea name="test1" id="test1"';
html += 'form';

$('#get_div').append();
 });

 </script>

<div id= "get_div"></div> 
<input type="button" onclick="val();"

Два текстовых пространства генерируются динамически. Теперь, как проверить его в функции val. Когда я делаю $ ('# test'). Val () или document.getElementbyId (test) .value, я не смог найти значения прокручиваемым

Спасибо ..

Ответы [ 2 ]

3 голосов
/ 28 марта 2010

Вы не генерируете корректный HTML, есть несколько проблем:

  • Элементы <textarea> не закрыты.
  • Элемент <form> не закрыт
  • onclick неправильно настроен (в любом случае, лучше через jQuery)

Вот исправленная версия с теми изменениями, которые работают:

JQuery:

$(document).ready(function() {
var html= '<form>'
    html += '<textarea name="test" id="test"></textarea>';
    html += '<textarea name="test1" id="test1"></textarea>';
    html += '</form>';
  $('#get_div').append(html);
  $("input").click(function() {
    alert($('#test').val());        
  });
});​

HTML:

<div id= "get_div"></div> 
<input type="button" Value="TestBtn"​ />​​​​​​​​​​​​​​

См. Демонстрацию здесь

1 голос
/ 28 марта 2010

Вы не можете отличить внутренне разницу между динамически созданными элементами и элементами от обычной разметки. Я бы предложил вам использовать класс маркеров так:

$(function() {
  $("textarea").addClass("static");
  ...
});

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...