jquery에서 텍스트 영역의 값을 얻는 방법은 무엇입니까?


82

나는이 양식을 가지고 있으며 텍스트 영역에서 값을 얻으려고합니다. 어떤 이유로 원하지 않습니다.

<form action="/profile/index/sendmessage" method="post" enctype="application/x-www-form-urlencoded">
    <div class="upload_form">
        <dt id="message-label"><label class="optional" for="message">Enter Message</label></dt>
        <dd id="message-element">
        <textarea cols="60" rows="5" id="message" name="message"></textarea></dd>
        <dt id="id-label">&nbsp;</dt>
        <dd id="id-element">
        <input type="hidden" id="id" value="145198" name="id"></dd>
        <dt id="send_message-label">&nbsp;</dt>
        <dd id="send_message-element">
        <input type="submit" class="sendamessage" value="Send" id="send_message" name="send_message"></dd>
    </div>
</form>


$("input.sendamessage").click(function(event) {
    event.preventDefault();

    var message = $('textarea#message').html();
    var id      = $('input#id').val();

    console.log(message + '-' + id);
});

또는 jsfiddle

어떤 아이디어?

답변:


158

textarea의 값은 val다음 과 같은 방법으로 도 사용됩니다 .

var message = $('textarea#message').val();




5

사용할 필요가 없습니다 textarea#message

var message = $('textarea#message').val();

직접 사용할 수 있습니다

var message = $('#message').val();

2

val ()을 사용하기 전에 textarea가 null인지 확인해야합니다. 그렇지 않으면 정의되지 않은 오류가 발생합니다.

if ($('textarea#message') != undefined) {
   var message = $('textarea#message').val();
}

그러면 메시지로 무엇이든 할 수 있습니다.


이것은 올바르지 않습니다. jQuery는 어떤 쿼리에 대해서도 undefined를 반환하지 않습니다. 대신 빈 집합을 반환합니다. 그러나 빈 집합에 대해 val을 호출하면 정의되지 않은 결과가 반환되지만 답변으로이 문제를 해결할 수 없습니다.
Xiyng

2

$('textarea#message')정의되지 않을 수 없습니다 ( $물론 jQuery를 의미하는 경우 ).

$('textarea#message')길이가 0 $('textarea#message').val()일 수 있고 비어있을 것입니다.



2

요소의 이름 속성으로 값을 가져올 수도 있습니다 .

var message = $("#formId textarea[name=message]").val();

1

을 사용할 필요가 없습니다 .html(). 당신은 함께 가야합니다 .val().

의 문서에서 .val():

.val()메서드는 주로 input, select및 같은 양식 요소의 값을 가져 오는 데 사용됩니다 textarea. 빈 컬렉션에서 호출되면 undefined.

var message = $('#message').val();


-1

다음과 같이 ID 대신 이름으로 값을 가져올 수도 있습니다.

var message = $('textarea:input[name=message]').val();
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.