【发布时间】:2013-04-02 18:29:26
【问题描述】:
我正在使用 asp.net Master -content 页面。 MasterPage 已经具有根级别 <form> 标记。
我的内容页面联系人有另一个 <form> 标记区域用于验证目的。
当我提交表单根级别 <form> 时,执行而不是验证 <form> 标记。
母版页
<form runat="server">
联系人.aspx
<form id="validForm">
<div class="control-group">
<label class="control-label" for="inputName">NAME<sup>*</sup></label>
<div class="controls">
<input type="text" class="span4" id="inputName" placeholder="Name"/>
<span class="help-inline">Please fill your name</span>
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputEmail">EMAIL<sup>*</sup></label>
<div class="controls">
<input type="text" class="span4" id="inputEmail" placeholder="Email"/>
<span class="help-inline">Please correct your email</span>
</div>
</div>
<div class="control-group">
<label for="textarea" class="control-label">COMMENT<sup>*</sup></label>
<div class="controls">
<textarea rows="4" class="span8" id="textarea" runat="server" ></textarea>
<span class="help-inline">Please write a comment</span>
</div>
</div>
<div class="control-group form-button-offset">
<input type="submit" class="btn" value="Send Message" />
<%-- <asp:Button class="btn" Text="Send Message" runat="server" id="btnSubmit" OnClick="btnSubmit_Click" />--%>
</div>
</form>
</div>
Mail_Validation.Js
var $mjq = jQuery.noConflict();
$mjq(function(){
$mjq(document).ready(function(){
$mjq(".help-inline").each(function() {
$mjq(this).css('display', 'none');
});
});
$mjq("#inputEmail").bind('blur', is_valid_email);
$mjq("#inputName").bind('blur', is_valid_name);
$mjq("#textarea").bind('blur', is_valid_comment);
$mjq('#validForm').bind('submit', function() {
return is_valid_form();
});
});
我在按钮单击时专门调用了is_valid_form();,仍然是父窗体覆盖它。
<script type="text/javascript">
$('.btn').click(function () {
//$(this).closest('validForm')[0].submit();
return is_valid_form();
});
现在如何在这里验证我的表单。
【问题讨论】:
-
我不是 ASP 专家,但我可以肯定地说,您不能将
<form></form>嵌套在<form></form>内。我知道有针对这种情况的解决方法,只是不知道该指向哪里。 -
您的代码表明您没有使用 jQuery Validate 插件,所以我删除了 jquery-validate 标签。
标签: jquery asp.net validation