我正在处理一个包含文本框和按钮的usercontrol文件。
控件在一个页面上呈现多个记录,从而动态创建和呈现文本框和按钮。
我正在尝试调用javascript函数来验证文本框是否具有值。我的问题是我无法确定哪个按钮被动态创建。 (因为我在父页面gridview中集成了这个控件,因此它变得动态。)
请告知社区。我假设的是我无法在调用closure
之前将索引设置为我正在检索的按钮ID。
我尝试了这个网站上提供的几个链接,但最后我在这里发布了我的问题以寻求具体的答案。
以下是我的代码snipeet。
HTML:
function validateSubmit() {
var btn = document.getElementsByClassName('frmBtn').length;
var btnId = document.getElementById('<%=commentSubmitButton.ClientID%>').id;
for (var j = 1; j <= btn; j++) {
(function(j){
btnId[j].onclick = function(){
alert('INSIDE CLICK');
var e = document.getElementsByClassName('frmTextBox')[j].value;
if (e == '') {
document.getElementsByClassName('lbl')[j].style.display = 'block';
}
}
})(j);
}
}
<div class="frmContent">
<p style="float: right; padding-top: 2em;">
<asp:Button ID="commentSubmitButton" runat="server" Text="Submit" CssClass="frmBtn" OnClientClick="validateSubmit(this);" />
</p>
<p>
<label for="txtComment" class="frmLabels">
Type Comment Here
<label id="lblStar" class="lbl" style="display:none;color:red;">*</label>
</label>
<asp:TextBox ID="txtComment" runat="server" Height="60" Width="75%" TextMode="MultiLine" CssClass="frmTextBox" ></asp:TextBox>
</p>
</div>
JAVASCRIPT:
答案 0 :(得分:1)
最后我明白了。
我想知道为什么我一直倾向于采用传统的JavaScript方法,这样可以通过如此优秀且如此先进的jquery轻松实现。我在jquery上观察到了一些概念,它帮助我让这个小东西在很少的行中起作用。这是我用jquery写的相关代码。
现在正在令人满意地工作。谢谢大家。
jquery代码
function validateSubmit(btnid)
{
//debugger;
var txtbox = $(btnid).parent().parent().find('.frmTextBox')[0];
var lblRequired = $(btnid).parent().parent().find('.lbl')[0];
if (txtbox.value == '') {
lblRequired.style.display = 'block';
event.preventDefault();
} else {
lblRequired.style.display = 'none';
}
}