2012-06-12 3 views
0

У меня есть несколько тегов div из «post». Имя на моей странице, что я хочу сделать, это отправить данные на сервере на кнопку отправки. Я не могу получить значение textarea «commentText» в моем методе jquery commentPost().Доступное значение textarea в jQuery с несколькими одинаковыми идентификаторами?

<div id="post"> 
    <br>topic containtment is here 
    <form name="postComment" id="commentForm" action="javascript:void(0);" method="post"  
    target="_top" onsubmit="return commentPost();"> 
    <textarea name="comment" id="commentText" cols="10" rows="3" accesskey="1"> 
    </textarea><br> 
    <input type="submit" name="submit" id="commentpost" value="Submit" accesskey="2"> 
    </form> 
</div> 

JQuery Метод

function commentPost() 
{ 
    alert("Inside commentpost"); 
     //how to get value of commentText 
    var comment=("form > commentText").val(); //<--not working 
    alert(comment); 
    //further code to be written 
} 

ВНИМАНИЕ: Есть несколько Дива сообщению тега на странице.

Как получить значение textarea. ??

+5

«есть несколько тегов div-сообщения на странице» ... тогда у вас есть неправильная разметка. Вместо этого замените его на имя класса. Значения идентификатора должны быть уникальными. –

+2

Метод commentPost имеет синтаксические ошибки. Это должно быть 'var comment = $ ('form> #commentText'). Val()' Вам не хватает функции dollarign и хэштега, назначающего класс. – jakee

ответ

1

Если у вас есть один идентификатор в документе со значением «commentText», то ваша функция должна выглядеть следующим образом:

function commentPost() 
{ 
    alert("Inside commentpost"); 
     //how to get value of commentText 
    var comment=("form > #commentText").val(); //<--not working 
    alert(comment); 
    //further code to be written 
} 

Если у вас есть несколько тегов с этим идентификатором, разметка является недействительной, и вы должен изменить id = "commentText" на class = "commentText" в вашей разметке. Ваша функция должна выглядеть в этом случае:

function commentPost() 
{ 
    alert("Inside commentpost"); 
     //how to get value of commentText 
    var comment=("form > .commentText").val(); //<--not working 
    alert(comment); 
    //further code to be written 
} 

Когда это работает, не забудьте удалить предупреждения из вашей функции.

1

Это not valid HTML, чтобы иметь несколько элементов с одинаковыми ID.

Если вы решите эту проблему, ваша проблема с jQuery будет решена косвенно.

1

id должен иметь возможность идентифицировать уникальный элемент на странице.

Как правило, то, что вы пытаетесь сделать, может быть решена с помощью class:

<textarea name="comment" class="commentText" cols="10" rows="3" accesskey="1"> 
</textarea><br> 

Затем используйте $("form > .commentText").

Смежные вопросы