繁体   English   中英

如何在JavaScript上的特定动态按钮上调用onclick事件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM