我正在尝试在<textarea>
中加载.txt文件。
.txt网址由用户选择,并带有<select>
。
问题是当文本区域中的文本更改时。
我的函数仅在文本区域干净时才有效。
你能帮我吗?
提前致谢;)
话筒
.HTML
<label for="text-template">Text selector:</label>
<select name="text-template" class="select" id="text-template">
<option value="test1.txt" selected>test.txt</option>
<option value="test2.txt" selected>test2.txt</option>
<option value="test3.txt" selected>test3.txt</option>
</select>
<div id="loadtext" class="loadtext" onclick="loadFileAsText()"><i class="fa fa-clipboard"></i>Load Text</div>
<textarea name="corpo" type="text" class="textarea" id="corpo" wrap="hard" placeholder="Insert text" required></textarea>
简讯
function loadFileAsText()
{
alert ($("#text-template").val()),
$.ajax({
url : $("#text-template").val(),
cache : false,
async: false,
ifModified : false,
dataType: "text",
success : function (data) {
$("#corpo").html(data);
}
});
}
:)
文本区域不包含 HTML。在 textarea 元素上调用 .html()
是无效的,应该失败(但话又说回来,jQuery 从来没有太关注它"应该"做的事情......
请改用.val()
来设置文本区域的值。
文本区域的 HTML 内容是其默认值。仅当显示的值是默认值时,以编程方式更改它才会反映在 UI 中。
请改用val()
。
添加
$("#text-template").val("");
在 ajax 调用之前清除文本区域并使用 val() 而不是 html() 来设置值。
我确实注意到,如果我键入某些内容,文本不会更改,并且在尝试更改文本区域之前清除文本区域会修复它。这仅在使用 .html() 时发生。如果你使用 .val(),你甚至不必清除文本区域。