在给定的代码中,我创建了一个动态textarea,现在当我尝试从该textarea获取插入值时。它给了我空值。
<form name="myForm">
<textarea name="fname" <%#!((GPNS.BusinessLayer.SpecialItems.SpecialItem)Container.DataItem).Code.Equals("OTH", StringComparison.InvariantCultureIgnoreCase) ? "style='display: none;'" : string.Empty%> id="text<%#((GPNS.BusinessLayer.SpecialItems.SpecialItem)Container.DataItem).ID%>" maxlength="50" placeholder="Enter other item details"></textarea>
</form>
鉴于我的功能是从textarea框中获取价值:
function ValidateData() {
if ($("textarea").is(":visible")) {
//var x = document.forms["myForm"]["fname"].value;
var x = document.getElementsByName("fname").value;
if (x == null || x == "") {
alert("Please Enter Other Item Details");
return false;
}
}
else return true
}
答案 0 :(得分:2)
您的textarea是动态的,因此您可以使用textarea更改事件。您可以在加载时使用给定的代码,因此无论何时输入文本,它都会在OtherItemValue上设置:
var OtherItemValue;
$("textarea").on('input change keyup', function () {
if (this.value.length) {
OtherItemValue = this.value;
} else {
OtherItemValue = "";
}
});
然后你可以使用下面的代码:
function ValidateData() {
if ($("textarea").is(":visible")) {
if (OtherItemValue == null || OtherItemValue == "") {
alert("Please Enter Other Item Details");
return false;
}
}
else return true
}
答案 1 :(得分:0)
<form name="myForm">
<textarea name="fname" <%#!((GPNS.BusinessLayer.SpecialItems.SpecialItem)Container.DataItem).Code.Equals("OTH", StringComparison.InvariantCultureIgnoreCase) ? "style='display: none;'" : string.Empty%> id="text<%#((GPNS.BusinessLayer.SpecialItems.SpecialItem)Container.DataItem).ID%>" maxlength="50" placeholder="Enter other item details"></textarea>
</form>
您的功能现在应该是这样的
function ValidateData() {
if ($("textarea").is(":visible")) {
//var x = document.forms["myForm"]["fname"].value;
var x = document.getElementsByName("fname")[0].value;
if (x == null || x == "") {
alert("Please Enter Other Item Details");
return false;
}
}
else return true
}
您的代码存在的问题是getElementsByName将获取一个元素列表,这些元素没有value属性。您只需要获取特定元素并获得其价值。这个解决方案可能会解决您的问题,但如果您在textarea上没有名称为fname的任何其他元素,则可以解决此问题。
答案 2 :(得分:0)
由于您已经使用了jQuery,为什么不使用它来实现所需的结果呢?
您的代码如下所示:
function ValidateData() {
if ($("textarea").is(":visible")) {
var x = $("textarea").val();
if (x == null || x == "") {
alert("Please Enter Other Item Details");
return false;
}
}
return true
}
如果您确实需要使用标准库,@ Rachit Gupta answer应该可以解决问题。
答案 3 :(得分:0)
使用jquery .val()方法检索文本区域的值。 你需要初始化textarea以清空文档就绪功能。
$(document).ready(function(){
$("textarea[name='fname']").val("");
});
function ValidateData() {
if ($("textarea").is(":visible")) {
var x = $("textarea[name='fname']").val();
if (x == null || x == "") {
alert("In if " + x);
return false;
}
else {
alert("In else" + x);
}
}
else {
return true
}
}