如何使用javascript从TextArea获取值?
这个问题看起来可能和谷歌很容易找到的问题相似,但由于某种原因,所有的解决方案都不适合我。我想做的就是检查textarea中是否有文本 JS代码段:如何使用javascript从TextArea获取值?,javascript,jquery,html,Javascript,Jquery,Html,这个问题看起来可能和谷歌很容易找到的问题相似,但由于某种原因,所有的解决方案都不适合我。我想做的就是检查textarea中是否有文本 JS代码段: var PrzedDzier = document.getElementById('ctl00_m_g_87871370_ce46_4f47_b1eb_614d0106535d_ff105_1_ctl00_ctl00_TextField'); var a = PrzedDzier.val(); if(a == "") { alert('FU
var PrzedDzier = document.getElementById('ctl00_m_g_87871370_ce46_4f47_b1eb_614d0106535d_ff105_1_ctl00_ctl00_TextField');
var a = PrzedDzier.val();
if(a == "")
{
alert('FU');
result = false;
}
HTML宝贝:
<textarea dir="none" class="ms-long" title="PDzier" id="ctl00_m_g_87871370_ce46_4f47_b1eb_614d0106535d_ff105_1_ctl00_ctl00_TextField" cols="20" rows="2" name="ctl00$m$g_87871370_ce46_4f47_b1eb_614d0106535d$ff105_1$ctl00$ctl00$TextField"></textarea>
调试器(Firebug)在
var a=PrzedDzier.val()处停止工作代码>因此我假设val()
方法有问题…您已将对象检索为JS对象,而不是jQuery对象。您需要使用jQuery ID选择器来检索jQuery对象:
var PrzedDzier = $("#ctl00_m_g_87871370_ce46_4f47_b1eb_614d0106535d_ff105_1_ctl00_ctl00_TextField");
var a = PrzedDzier.val();
if(a == "")
{
alert('FU');
result = false;
}
如果您想使用纯JS访问文本,只需使用值
属性:
PrzedDzier = document.getElementById('ctl00_m_g_87871370_ce46_4f47_b1eb_614d0106535d_ff105_1_ctl00_ctl00_TextField');
var a = PrzedDzier.value;
if(a == "")
{
alert('FU');
result = false;
}
因为您使用的是jQuery,所以可以直接访问textarea并获得如下值
$("#ctl00_m_g_87871370_ce46_4f47_b1eb_614d0106535d_ff105_1_ctl00_ctl00_TextField").val();
但通常情况下,使用运行时ID获取元素更容易出错(如果元素很容易被移动,从而更改运行时ID),否则您可以很好地使用上述代码。我相信使用strlen比使用“”要好,因为strlen速度更快且需要6个字节的ram。只是让你知道另一种方式
var j = document.getElementById('idoftextbox').value;
if (strlen(j) == 0)
{
alert('FU');
return false;
}
或者在JS对象上使用innerHTMLtextarea@AshwiniDhekane,是的,但OP表示他们想使用.val()
方法。我将更新帖子以显示两者。@JamesHill您应该使用.value
,因为.innerHTML
是一团乱麻。当然,这两种方法都可以。不是真正的JS程序员,非常感谢您的启发;)现在很好用。干杯@JamesHill,@AshwiniDhekane,@Amaan:永远不要对文本区域使用innerHTML
。它与textarea的实际内容不同步<代码>值
是唯一有效的属性。看见