2013-10-04 3 views
0

У меня есть html-форма и js-скрипт, который получает значение текстового поля. Однако, когда я получаю значение textarea с javascript, он возвращает «undefined». У меня есть следующие:Получение значения textarea возвращает undefined

<!DOCTYPE html> 
<html> 

<head> 
<meta charset="UTF-8"> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<meta name="viewport" content="width=device-width, initial-scale=1"> 

<script src="js/jquery/jquery-1.9.1.min.js"></script> 

<script src="contentForm.js"></script> 
</head> 

<body> 
<form method="post" > 
<textarea name ="editor" id="editBox" rows="5" cols="2">type</textarea> 
<p><input type="submit" id="submit" value="Submit"></p> 
</form> 
</body> 
</html> 

JS

function add() { 
$("#submit").click(function() { 
document.write("hello motto"); 
var message = "start js"; 
console.log(message); 
var contents = $("#editBox"); 
var a = contents.val(); 

if(a === undefined) { 
    console.log("contents undefined"); 
} 
console.log(contents); 
var item = {"id":"12", "content": contents}; 
var obj = JSON.stringify(item); 
var obj2 = JSON.parse(obj); 
console.log("you have arrived"); 
document.write(obj2.id);  
}); 
} 

$(document).ready(function() { 

add(); 

}); 

Я попытался следующие, чтобы получить значение текстового поля:

var content = $("#editBox").val(); 

и

var contents = $("textarea#editBox").val(); 

Валь текстовой области всегда не определено, с каждым из методов, которые я пытался.

Есть ли другой способ для получения значения текстового поля?

+0

Ничего страшного - оба 'alert ($ (" # editBox "). Val());' и 'alert ($ (" # editBox "). Text());' будет предупреждать 'типа " – davidkonrad

ответ

3

Запуск document.write на закрытом документе откроет новый документ и уничтожит DOM существующего.

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

Удалить строку document.write("hello motto");.

Используйте DOM-манипуляцию до Редактировать существующий документ вместо того, чтобы писать новый.

+0

Идеальный ответ ! У меня есть следующий вопрос: если я предварительно загружаю textarea с текстом (как в моем коде, где строка «type» уже находится в текстовом поле), значение извлекается штрафом. Но если я оставлю текстовое поле пустым и пусть пользователь вводит любой текст, он всегда возвращается неопределенным. – user2615490

+0

Работает для меня: http://jsfiddle.net/EFBaG/ – Quentin

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