如何在javascript

时间:2017-06-20 23:01:20

标签: javascript jquery html asp.net

我正在处理一个包含文本框和按钮的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:

1 个答案:

答案 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';
        }
    }