这个问题可能看起来像谷歌容易找到的问题,但由于某种原因,所有解决方案都没有对我有用。我想做的就是检查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()
方法有问题......
答案 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;
}