如何使用javascript从TextArea获取值?

时间:2011-11-09 13:09:13

标签: 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');
  result = false;
}

HTML baby:

<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()方法有问题......

3 个答案:

答案 0 :(得分:8)

您已将对象检索为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访问文本,只需使用value属性:

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;
}

答案 1 :(得分:1)

由于您使用的是jQuery,因此您可以直接访问textarea并获取以下值。

$("#ctl00_m_g_87871370_ce46_4f47_b1eb_614d0106535d_ff105_1_ctl00_ctl00_TextField").val();

但通常情况下,使用其运行时ID获取元素更容易出错(如果有可能移动元素会改变运行时ID),否则你可以很好地使用上面的代码。 / p>

答案 2 :(得分:1)

我相信使用strlen比“”更好,因为strlen更快,“”需要6个字节的ram.just让你知道另一种方式

var j = document.getElementById('idoftextbox').value;
 if (strlen(j) == 0) 
  {
    alert('FU');
    return false;
  }