作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个用 asp.net 编写的网站(虽然这部分只是 HTML 和 jQuery),带有一个带有提交按钮的表单。我在 jquery 中为每个文本框编写了自己的验证,如果每个文本框都通过了,那么它将通过 ajax 将表单发送到 c# 代码隐藏。这在每个浏览器中都可以正常工作,即使是 IE7 和 IE8 ,问题是当我通过 iPad ( Safari ) 查看页面时,它完全跳过验证并刷新整个页面。我只有一个 4 岁的 ipad,我相信 ios2 或者 ios3,无论哪种方式,我都希望它能在所有浏览器中工作。
代码:
<input type="button" id="btnLogin" class="button" value="Login" style="top: 325px;" onclick="fnSignUp();" />
function fnSignUp() {
// Check for Valid EMail
var rege = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
if (rege.test($('#<%= txtEmail.ClientID %>').val())) { }
else {
$('#<%= lblErrorSignUp.ClientID %>').text("Invalid EMail");
return;
}
//Check For Empty First Name
if ($('#<%= txtFNameSignUp.ClientID %>').val() == "") {
$('#<%= lblErrorSignUp.ClientID %>').text("Enter First Name");
$('#<%= lblFNameError.ClientID %>').text(" *");
return;
}
else $('#<%= lblFNameError.ClientID %>').text("");
//Check For Empty Last Name
if ($('#<%= txtLNameSignUp.ClientID %>').val() == "") {
$('#<%= lblErrorSignUp.ClientID %>').text("Enter Last Name");
$('#<%= lblLNameError.ClientID %>').text(" *");
return;
}
else $('#<%= lblLNameError.ClientID %>').text("");
//Check For Empty Zip Code
if ($('#<%= txtZipSignUp.ClientID %>').val() == "") {
$('#<%= lblErrorSignUp.ClientID %>').text("Enter Your ZipCode");
return;
}
// Check For Valid Zip Code
if (IsValidZipCode == false) {
$('#<%= lblErrorSignUp.ClientID %>').text("Invalid US ZipCode");
return;
}
//Check If Password is left empty
if ($('#<%= txtPass1.ClientID %>').val() == "") {
$('#<%= lblErrorSignUp.ClientID %>').text("Enter A Password");
return;
}
//Check that both Passwords match
if ($('#<%= txtPass1.ClientID %>').val() != $('#<%= txtPass2.ClientID %>').val()) {
$('#<%= lblErrorSignUp.ClientID %>').text("Both Passwords Must Match");
return;
}
var email = $('#<%= txtEmail.ClientID %>').val();
var fname = $('#<%= txtFNameSignUp.ClientID %>').val();
var lname = $('#<%= txtLNameSignUp.ClientID %>').val();
var zip = $('#<%= txtZipSignUp.ClientID %>').val();
var city = $('#<%= hidcity.ClientID %>').val();
var state = $('#<%= hidstate.ClientID %>').val();
var lat = $('#<%= hidLatitude.ClientID %>').val();
var longi = $('#<%= hidLongitude.ClientID %>').val();
var pass = $('#<%= txtPass1.ClientID %>').val();
$.ajax({
type: "POST",
url: "Login.aspx/SignUpNewUser",
data: "{'email':'" + email + "', 'fname' : '" + fname + "' , 'lname' : '" + lname + "', 'zip' : '" + zip + "', 'city' : '" + city + "' , 'state' : '" + state + "' , 'lat' : '" + lat + "', 'longi' : '" + longi + "', 'pass' : '" + pass + "' }",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
var obj = $.parseJSON(msg.d);
if (obj.login == "false") $('#<%= lblLoginMessage.ClientID %>').text("Login Failed");
if (obj.login == "true") {
location.reload(true);
}
}
});
return false;
}
最佳答案
我没有用于测试的 ipad,但您可以尝试以下一项或多项:
return false;
而不是 return;
取消默认按钮行为。使用 jquery 而非 onclick
属性绑定(bind)点击事件。
$("#btnLogin").click(fnSignUp);
无论如何,使用 jquery 进行绑定(bind)更好,因为您将逻辑与页面 View 分开了。
关于jquery - 停止在 ipad asp.net 上回发提交按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11584871/
我是一名优秀的程序员,十分优秀!