如何在javascript上的特定动态按钮上调用onclick事件
我正在处理一个usercontrol文件,其中包含一个文本框和一个按钮 该控件在一个页面上呈现多条记录,从而动态创建和呈现文本框和按钮 我试图调用一个javascript函数来验证textbox是否有值。我的问题是,我无法确定正在单击哪个按钮,因为它是动态创建的。(当我将此控件集成到父页面gridview中时,它将变得动态。) 请告知社区。我假设在调用如何在javascript上的特定动态按钮上调用onclick事件,javascript,jquery,html,asp.net,Javascript,Jquery,Html,Asp.net,我正在处理一个usercontrol文件,其中包含一个文本框和一个按钮 该控件在一个页面上呈现多条记录,从而动态创建和呈现文本框和按钮 我试图调用一个javascript函数来验证textbox是否有值。我的问题是,我无法确定正在单击哪个按钮,因为它是动态创建的。(当我将此控件集成到父页面gridview中时,它将变得动态。) 请告知社区。我假设在调用闭包之前,我无法将索引设置为正在检索的按钮Id 我尝试了以下几个链接在这个网站上,但最后我在这里张贴我的问题,以寻求具体的答案 下面是我的代码sn
闭包之前,我无法将索引设置为正在检索的按钮Id
我尝试了以下几个链接在这个网站上,但最后我在这里张贴我的问题,以寻求具体的答案
下面是我的代码snipeet
HTML:
函数validateSubmit(){
var btn=document.getElementsByClassName('frmBtn').length;
var btnId=document.getElementById(“”).id;
对于(var j=1;j,我终于明白了
我想知道为什么我一直倾向于使用传统的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';
}
}
可能有不同的方法来实现这一点。如果是我,我会利用单击事件向上冒泡的事实。因此,我不会将onclick事件附加到单个元素,而是附加到一个公共父元素,onclick=“myfunction(event)”。事件对象会告诉您实际单击了哪个元素(使用event.target)。我想你让我更接近我的问题。你能提供我的问题的相关片段吗?我感谢你的投入。我很抱歉,因为我不能从你的代码中完全理解你的最终HTML是什么样子,但是,例如,你可以附加onclick=“myfunction(event)”到您的顶级div。如果单击div中的任何内容,事件将冒泡到该div。您可以对动态元素的ID进行编码,以便可以知道单击了哪个按钮,并且从其ID知道如何找到相关的文本框。例如,按钮可以具有ID=“button_1”,而文本框具有ID=“textbox_1”。请确保在页面上保持ID的唯一性。很抱歉,我不能说得更清楚。感谢您的详细说明。您能否提供有关如何查找与单击的特定按钮相关的文本框的更多说明?