代码如下,但 onsubmit 不执行:
<script. type="text/javascript">
function validate() {
if ($("#name").val().length == 0)
;
}
</script>
<form. id="form1" action="#" nsubmit="validate()">
<label for="name">姓名</label>
<input id="name" type="text" />
</form>
<div>此处很多内容,可能包含其它表单</div>
<button nclick="$('#form1').submit()">提交</button>
有些onsubmit是动态添加上的,如ASP.net MVC的验证:
http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx
如 果验证不通过,就不提交。
解决一:代码如下
<script. type="text/javascript">
function validate() {
if ($("#name").val().length == 0){alert("input is empty");return false;}
}
</script>
<form. id="form1" action="#" nsubmit="return validate()">
<label for="name">姓名</label>
<input id="name" type="text" />
<input type="submit" value="提交">
</form>
<div>此处很多内容,可能包含其它表单</div>
解决二:代码如下
<script. type="text/javascript">
function validate() {
if ($("#name").val().length == 0)
;
}
</script>
<form. id="form1" action="#" >
<label for="name">姓名</label>
<input id="name" type="text" />
</form>
<div>此处很多内容,可能包含其它表单</div>
<button nclick="validate();">提交</button>
分析你代码的原因,你代码中在form中本身加入了一个 onsubmit方法,而在下面又使用jQuery中来提交这个form表单,这就相当于这个form添加了两个onsubmit方法。而在一般情况中, 对同一个标签使用两个方法会有方法覆盖,此时就会依据浏览器对事件处理的不同来显示不同的表象,这里不做细说。具体的可以私下交流...