Answers:
你最好做...
<form onsubmit="return isValidForm()" />
如果isValidForm()
返回false
,则您的表单不会提交。
您可能还应该将事件处理程序从内联移动。
document.getElementById('my-form').onsubmit = function() {
return isValidForm();
};
onsubmit
每当我使用ASP.net时我都无法工作,因为asp.net会将所有内容都以自己的形式包装起来……
有时onsubmit
无法与asp.net一起使用。
我用很简单的方法解决了。
如果我们有这样的表格
<form method="post" name="setting-form" >
<input type="text" id="UserName" name="UserName" value=""
placeholder="user name" >
<input type="password" id="Password" name="password" value="" placeholder="password" >
<div id="remember" class="checkbox">
<label>remember me</label>
<asp:CheckBox ID="RememberMe" runat="server" />
</div>
<input type="submit" value="login" id="login-btn"/>
</form>
现在,您可以在表单回发之前捕获该事件,并从回发中停止该事件,并使用此jquery执行所有想要的ajax。
$(document).ready(function () {
$("#login-btn").click(function (event) {
event.preventDefault();
alert("do what ever you want");
});
});
为什么不将“提交”按钮更改为常规按钮,并在单击事件上通过了验证测试就提交您的表单?
例如
<input type='button' value='submit request' onclick='btnClick();'>
function btnClick() {
if (validData())
document.myform.submit();
}
用 onclick='return btnClick();'
和
function btnClick() {
return validData();
}
function btnClick() {
return validData();
}
ev.preventDefault()
或ev.returnValue = false
取消默认行为,但也不要阻止事件冒泡。使用return false
只有当你想从冒泡停止活动,并取消默认动作。看到这篇文章。
<input type='button' onclick='buttonClick()' />
<script>
function buttonClick(){
//Validate Here
document.getElementsByTagName('form')[0].submit();
}
</script>
submit
输入。我想我会在此页面上尝试使用服务器端控件。