【发布时间】:2016-08-17 11:29:48
【问题描述】:
我的页面上有一个文本区域输入,我想使用 AJAX 将其发布到服务器。 AJAX 调用很好,但是,它不会看到文本区域内的值。
我的 HTML:
<div class="promptBody">
<div id="promptText" onclick="replaceWithInput(this)">
<p class="promptBody"><div id="prompty">{{prompt.prompt|linebreaks}}</div></p>
</div>
<form id="promptUpdateForm">
<div id="promptInput">
<p><textarea class="input" cols="40" id="id_prompt" name="prompt" placeholder="Prompt" rows="10"></textarea></p>
<p><input class="submit" type="submit" name="submit" id="submit" value="Edit Prompt" /></p>
</div>
</form>
</div>
<script type="text/javascript">
$(document).ready(function() {
$(document).on('submit', '#promptUpdateForm', function(e) {
e.preventDefault();
$.ajax({
type: 'POST',
url: '/apps/litprompt/a/{{prompt.id}}/update/',
data: {
'prompt': $('#id_prompt').val(),
csrfmiddlewaretoken: $('input[name="csrfmiddlewaretoken"]').val(),
},
success: function(json) {
$('#promptText').html(json.prompt_data);
var promptText = document.getElementById('promptText');
var promptInput = document.getElementById('promptInput');
promptText.style.display = 'block';
promptInput.style.display = 'none';
}
});
});
});
</script>
如果我将数据中的 ajax 代码更改为 'prompt': 'blah',它就可以正常工作。但是每次我使用 'prompt': $('#id_prompt').val() 发布时,它都是一个空值。
【问题讨论】:
-
你忘了关闭文本区域,它们不是自动关闭的,需要一个
</textarea>关闭标签 -
对不起,我在重新格式化问题代码时忘记了 ,但它在实际代码中,但仍然无法正常工作。我重新格式化了问题以更正它。
标签: javascript jquery html ajax django