2013-10-04 3 views
2

У меня есть HTML-форма, содержащая кнопку textarea и submit. и скрипт JS, который принимает значение textarea.значение textarea возвращено пусто

Проблема, с которой я столкнулся, - это когда я печатаю текст в текстовое поле и нажимаю submit, значение textarea пусто. ОДНАКО, если я жестко кодирую текст в текстовое поле, возвращается твердое значение. Если я стираю твердое значение и удаляю жестко закодированное значение и набираю свой собственный, , то жестко запрограммированная долина все еще возвращается.

HTML

<!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() { 
var message = "start js"; 
console.log(message); 

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

if(contents === 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(obj2.id); 
console.log(obj2.content); 
}); 
} 

$(document).ready(function() { 

add(); 

}); 

Обратите внимание, как выше текстовое поле имеет "тип" предустановленным. Это возвращаемое значение. Если я оставлю его пустым, введите свой собственный текст в форме и нажмите «Отправить», в окне консоли отображается пустое значение содержимого.

Я пробовал это, а также (с помощью текстового идентификатора)

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

Я предполагаю, что этот вопрос лежит POST. Потому что, когда я нажимаю enter, текст, который я ввел, заменяется на «type» (предварительно загруженный текст).

Может ли POST вмешиваться в него? Как еще я могу найти значение?

+3

@Joe - 'val()' будет работать нормально. – tymeJV

+0

nope. Тот же вопрос. – user2615490

+0

Передать 'event' в ваш обработчик кликов и отменить действие по умолчанию:' $ ("# submit"). Click (function (event) {event.preventDefault(); ...} ' – tymeJV

ответ

0

Я не уверен в реальной проблеме, но что-то странное, что я заметил в последние несколько дней. console.log() не работает в хроме в нескольких случаях, как этот. Может быть, это ошибка firebug? В любом случае, заменил console.log() на alert и удалил значение по умолчанию от textarea.

Обновлено скрипку: http://jsfiddle.net/eVmQ9/2/

Это, кажется, работает на хроме и светлячок.

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