Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript从TextArea获取值?_Javascript_Jquery_Html - Fatal编程技术网

如何使用javascript从TextArea获取值?

如何使用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

这个问题看起来可能和谷歌很容易找到的问题相似,但由于某种原因,所有的解决方案都不适合我。我想做的就是检查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宝贝:

<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的实际内容不同步<代码>值
是唯一有效的属性。看见