如何使用jquery清空文本区域中的消息?

如何使用jquery清空文本区域中的消息?,jquery,Jquery,--更新-- 我想在回调中清空文本区域中的消息 谁能告诉我怎么清空它吗 我尝试了$(“#message”).empty(),但它没有清空它 <form method="post" id="form" action="index.php/admin/messages/insertShoutBox"> <input name="user" id="nick"

--更新--

我想在回调中清空文本区域中的消息

谁能告诉我怎么清空它吗

我尝试了
$(“#message”).empty()
,但它没有清空它

 <form method="post" id="form" action="index.php/admin/messages/insertShoutBox">        
    <input name="user" id="nick" value="admin" type="hidden">
    <p class="messagelabel"><label class="messagelabel">Message</label>
    <textarea id="message" name="message" rows="2" cols="40"></textarea>
    <input disabled="disabled" id="send" value="Sending..." type="submit"></p>          
</form>
$('#message').val('');
解释(摘自@BalusC):
textarea
是一个带有值的
input
元素。实际上,您希望“清空”该值。因此,对于其他每一个
输入
元素(
输入
选择
文本区域
),您需要使用
元素.val(“”)


另请参见

//由于您使用的是AJAX,我相信您不能依赖这里的submit //清空操作,您可以包括字符集utf-8,因为我认为jQueryPost方法也使用它

HTML

<input name="user" id="nick" value="admin" type="hidden">

<p class="messagelabel"><label class="messagelabel">Message</label>

<textarea id="message" name="message" rows="2" cols="40"></textarea>

<input disabled="disabled" id="send" value="Sending..." type="submit">

//原始代码,已删除提交事件处理程序。。 //$(“#表单”).submit(函数(){

if(checkForm()){
//var nick=inputUser.attr(“值”);
//var message=inputMessage.attr(“值”);
//似乎更适合你的形式,而不是测试
var nick=$('#表单输入[type=“text”]:first').attr('value');
var message=$('#表单输入[type=“textarea”]').attr('value');
//我们在发送时禁用提交按钮
//$(“#发送”).attr({disabled:true,value:“发送…”);
//这在这里更方便,我们删除了submit按钮的disabled属性,并更改了它的值
表单\u click.removeAttr('已禁用')
//.val(“发送…”);
//不知道为什么这里如此孤独,当它是同一个元素时..而是触发它以避免以后出现任何问题
.val(“发送…”)。触发器(“模糊”);
//$(“#发送”).blur();
//将帖子发送到shoutbox.php
$.ajax({
类型:“POST”,
//看到你在表单上调用它,在提交时,但是在这里你可以更新url
//url:“index.php/admin/dashboard/insertShoutBox”,
url:page_action,
//数据:$('#form')。序列化(),
//序列化表单数据
数据:只需\u form.serialize(),
//完成:功能(数据){
//在完成时,我们应该使用控制台日志,但我正在使用警报进行测试
完成:功能(数据){
警报(“这里用AJAX触发万岁完成”);
},
成功:功能(数据){
html(data.responseText);
updateShoutbox();
var-timeset='750';
setTimeout(“只需_form.reset();”,timeset);
//再次重置表单,发送按钮将返回禁用false,值将被提交
//$('#message').val('').empty();
//也许你想重新设置表单????
//重新激活发送按钮
//$(“#发送”).attr({disabled:false,值:“SUBMIT!”});
}
});
}
else警报(“请填写所有字段!”);
//我们阻止在提交表单后刷新页面
//返回false;
//我们通过删除表单上的操作并在其中添加return false来防止它
event.preventDefault();
});//函数结束
}); //结束jQuery函数
你也可以用这个方法。因为textarea的open和close标记之间的所有内容都是html代码。

对jarijira的评论

我对输入o的.html和.empty()方法有很多问题。如果id表示输入而不是另一种类型的html选择器(如),请使用.val()函数进行操作

例如:这是操作输入值的正确方法

<textarea class="form-control" id="someInput"></textarea>

$(document).ready(function () {
     var newVal='test'
     $('#someInput').val('') //clear input value
     $('#someInput').val(newVal) //override w/ the new value
     $('#someInput').val('test2) 
     newVal= $('#someInput').val(newVal) //get input value

}
<textarea class="form-control" id="someInput"></textarea>

$(document).ready(function () {
     var newVal='test'
     $('#someInput').html('') //clear input value
     $('#someInput').empty() //clear html inside of the id
     $('#someInput').html(newVal) //override the html inside of text area w/ string could be '<div>test3</div>
     really overriding with a string manipulates the value, but this is not the best practice as you do not put things besides strings or values inside of an input. 
     newVal= $('#someInput').val(newVal) //get input value

}

$(文档).ready(函数(){
var newVal='test'
$('#someInput').val('')//清除输入值
$('#someInput').val(newVal)//覆盖新值
$('#someInput').val('test2)
newVal=$('#someInput').val(newVal)//获取输入值
}
不合适,但有时有效 例如:这是操作输入值的正确方法

<textarea class="form-control" id="someInput"></textarea>

$(document).ready(function () {
     var newVal='test'
     $('#someInput').val('') //clear input value
     $('#someInput').val(newVal) //override w/ the new value
     $('#someInput').val('test2) 
     newVal= $('#someInput').val(newVal) //get input value

}
<textarea class="form-control" id="someInput"></textarea>

$(document).ready(function () {
     var newVal='test'
     $('#someInput').html('') //clear input value
     $('#someInput').empty() //clear html inside of the id
     $('#someInput').html(newVal) //override the html inside of text area w/ string could be '<div>test3</div>
     really overriding with a string manipulates the value, but this is not the best practice as you do not put things besides strings or values inside of an input. 
     newVal= $('#someInput').val(newVal) //get input value

}

$(文档).ready(函数(){
var newVal='test'
$('#someInput').html('')//清除输入值
$('#someInput').empty()//清除id中的html
$('#someInput').html(newVal)//覆盖文本区域内的html,w/字符串可以是“test3”
实际上,使用字符串重写会操纵值,但这不是最佳做法,因为您不会将字符串或值以外的内容放在输入中。
newVal=$('#someInput').val(newVal)//获取输入值
}

我遇到的一个问题是,我使用$getJson方法,并且我确实能够使用.html调用来操作我的输入。但是,每当我在getJson上出现错误或失败时,我就不能再使用.clear和.html调用来更改我的输入。我仍然可以返回.val().经过一些实验和研究后,我发现您应该只使用.val()函数来更改输入字段。

.html(“”)。这是我唯一解决此问题的方法。

对于设置为空的所有输入,如textarea选择并输入,请运行以下代码:

$('#message').val('').change();

$(“#message”).prop(“val”),它对我有效。

我尝试了$(“#message”).val(“”).empty();但没有将其清空。
empty()
在这里不适用,它仅用于从元素中移除子节点。
val(“”)
是正确的,因此如果它不起作用,您需要发布更多的代码,因为听起来好像根本没有调用特定的行忘记空(),只需使用这个答案,它将textarea的值(即内容)设置为nothing。说明:
textarea
是一个带有值的输入元素。您实际上想要“空”值。因此,对于每个其他输入元素(
input
select
textarea
),您需要使用
element.val(“”);
。另请参见注意:将值设置为null不起作用(我以为它会起作用,并希望将其放在这里供其他人使用)。html(“”)或.text(“”)对我都不起作用。只有.val(“”)起作用。
<textarea class="form-control" id="someInput"></textarea>

$(document).ready(function () {
     var newVal='test'
     $('#someInput').html('') //clear input value
     $('#someInput').empty() //clear html inside of the id
     $('#someInput').html(newVal) //override the html inside of text area w/ string could be '<div>test3</div>
     really overriding with a string manipulates the value, but this is not the best practice as you do not put things besides strings or values inside of an input. 
     newVal= $('#someInput').val(newVal) //get input value

}
$('#message').val('').change();