jQuery load()在textarea上没有按预期工作

时间:2014-02-25 15:02:39

标签: javascript php jquery html dom

我正在尝试使用load()函数从PHP文件中获取用户内容并将其显示在textarea中,但是如果用户事先在texarea中键入内容,则相同的过程将无效。任何人都有解决方案吗?

例如:在textarea中输入内容,然后点击不会改变texarea内容的链接。

提前致谢

HTML

<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>

<script type="text/javascript">
function show_content(display_field, id)
{
    $('#' + display_field).load('data.php?id=' + id);
}
</script>


<a href="#nogo" onClick="show_content('content_area', '1')" title="View">User 1</a>
<a href="#nogo" onClick="show_content('content_area', '2')" title="View">User 2</a>
<a href="#nogo" onClick="show_content('content_area', '3')" title="View">User 3</a>

<textarea id="content_area" rows="10" cols="10"></textarea>

PHP

<?php
$content[1] = 'This belongs to User 1';
$content[2] = 'This belongs to User 2';
$content[3] = 'This belongs to User 3';

echo $content[$_GET['id']];
?>

2 个答案:

答案 0 :(得分:3)

您的问题是load()设置了html而不是value

你可以用这个:

function show_content(display_field, id) {
    $.get( 'data.php?id=' + id, function( data ) {
        $('#' + display_field).val(data);
    });
}

<强> .get()

答案 1 :(得分:0)

你没有说明什么&#34;赢得了工作&#34;手段。如果你的意思是textarea内容有时会出现错误,我怀疑这是因为你正在启动三个异步调用$(#xxx).load(();每个都将独立执行,并在将来以随机顺序更新你的textarea。 / p>

而是做这样的事情:

 $('#temp').load('data.php?id=' + id, function (responseText, textStatus, XMLHttpRequest) {
     $('#display_field).val($('#temp').val());
);

每个结果将按顺序执行,加载到您的结果中。它们可能不符合您调用它们的顺序。