![](/img/trans.png)
[英]How to change dynamic HTML button onClick event with Javascript
[英]How to invoke a onclick event on specific dynamic button on javascript
我正在处理一个包含文本框和按钮的usercontrol文件。
该控件在一页上呈现多个记录,因此可以动态创建和呈现文本框和按钮。
我正在尝试调用JavaScript函数来验证文本框是否具有价值。 我的问题是,由于它是动态创建的,因此我无法确定正在单击哪个按钮。 (由于我将此控件集成到父页面gridview中,因此它是动态的。)
请告知社区。 我假设我无法在调用closure
之前将索引设置为要检索的按钮ID。
我尝试了以下该网站上的可用链接,但最终我将其发布在此处以寻求具体答案。
下面是我的代码片段。
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:
终于我明白了。
我想知道为什么当如此出色和如此高级的jquery可以轻松实现此类目标时,为什么我仍倾向于传统的JavaScript方法。 我在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';
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.