JavaScript会重新加载整个页面
JavaScript reloads the complete page
我正在使用以下脚本验证注册表:
$(document).ready(function() {
$("#register").click(function() {
var name = $("#name").val();
var email = $("#email").val();
var password = $("#password").val();
var cpassword = $("#cpassword").val();
if (name == '' || email == '' || password == '' || cpassword == '') {
alert("Please fill all fields...!!!!!!");
} else if ((password.length) < 8) {
alert("Password should at least 8 character in length...!!!!!!");
} else if (!(password).match(cpassword)) {
alert("Your passwords don't match. Try again?");
} else {
$.post("register.php", {
name1: name,
email1: email,
password1: password
}, function(data) {
if (data == 'You have Successfully Registered.....') {
alert("Tu cuenta de usuario ha sido creada");
}
});
}
});
});
我正在检查所有可能的选项,并检测到这些条件正在发挥作用,但页面并没有停止脚本的执行,而是在满足一个条件后重新加载。例如,如果密码长度为6个字符,则警报:
alert("Password should at least 8 character in length...!!!!!!");
被抛出,但页面再次重新加载,并且输入字段中的所有文本都被删除。。。
此外,当$.post调用被执行并且响应是预期的时,警报:
alert("Tu cuenta de usuario ha sido creada");
未显示。该记录在数据库中创建,页面将再次重新加载,但不会显示警报。
编辑
这是表单的html部分:
<div class="form-bottom">
<form role="form" method="post" action="#" class="login-form" id="login_form">
<div class="form-group">
<label class="sr-only" for="form-username">Usuario</label>
<input type="text" name="dname" placeholder="Usuario..." class="form-username form-control" id="name">
</div>
<div class="form-group">
<label class="sr-only" for="form-email">Email</label>
<input type="text" name="email" placeholder="Email..." class="form-email form-control" id="email">
</div>
<div class="form-group">
<label class="sr-only" for="form-password">Contraseña</label>
<input type="password" name="password" placeholder="Contraseña..." class="form-password form-control" id="password">
</div>
<div class="form-group">
<label class="sr-only" for="form-confirm-password">Confirmar Contraseña</label>
<input type="password" name="cpassword" placeholder="Confirmar Contraseña..." class="form-password form-control" id="cpassword">
</div><br>
<button type="submit" name="register" id="register" class="btn">Crear cuenta de usuario</button>
</form>
可能是您的#注册是一个提交按钮,表单正在发布
在HTML表单中更改以下按钮代码
<button type="submit" name="register" id="register" class="btn">Crear cuenta de usuario</button>
至
<button type="button" name="register" id="register" class="btn">Crear cuenta de usuario</button>
这是小提琴
唯一改变的是按钮的类型。
单击按钮时,它会执行该按钮的默认操作。由于您的按钮类型为submit
,因此默认操作是提交表单。这就是您在应用程序中看到的内容——运行脚本,然后提交表单。
为了防止您需要在事件对象上使用方法preventDefault
:
$("#register").click(function(e) { // <- pass event object as first parameter
e.preventDefault(); // <- call preventDefault to prevents form from submitting
var name = $("#name").val();
// the rest of your code
}
调用此方法时,不会触发事件的默认操作。在您的情况下,这意味着表单将不会提交,您的代码应该可以正常工作。
您需要在点击事件结束时返回false
$(document).ready(function() {
$("#register").click(function() {
var name = $("#name").val();
var email = $("#email").val();
var password = $("#password").val();
var cpassword = $("#cpassword").val();
if (name == '' || email == '' || password == '' || cpassword == '') {
alert("Please fill all fields...!!!!!!");
} else if ((password.length) < 8) {
alert("Password should at least 8 character in length...!!!!!!");
} else if (!(password).match(cpassword)) {
alert("Your passwords don't match. Try again?");
} else {
$.post("register.php", {
name1: name,
email1: email,
password1: password
}, function(data) {
if (data == 'You have Successfully Registered.....') {
alert("Tu cuenta de usuario ha sido creada");
}
});
}
return false; // put this it will solve your problem
});
});
相关文章:
- 在新的浏览器选项卡上加载新的aspx页面后调用JavaScript函数
- 更改css链接并等待加载新的css
- 如何在Ajax加载新内容时停止JavaScript执行
- 当在ng视图中加载新路由时,Tabbing(tabindex)针对错误的元素
- 如何使用输入数据加载新的extjs图表
- JQuery Masonry.Ajax图标和“;加载新项目”;绳子放错地方了
- 通过javascript在同一个打开的选项卡中重新加载新的网页内容
- 当用户到达页面右侧时加载新内容
- 数据表 AJAX 筛选器重新加载数据
- 超链接单击以加载新页面并执行JavaScript
- 单击时加载新的 SVG
- 在RadWindow中加载新页面,然后从加载的窗体中关闭窗口
- ajax在页面刷新之前不会加载新的sql结果
- 谷歌地图API-在从ajax页面加载新数据之前清除标记、多段线
- 使用Ajax加载页面,并在必要时加载新脚本
- 加载新页面时的过渡效果,AJAX
- Ajax没有正确加载新页面
- 正在加载新的Javascript,但正在调用旧的Javascript.MVC
- 咕噜咕噜的手表:实时加载重新加载落后 1 步....
- 我怎么能有一个花哨的盒子一样的弹出体加载,但与cookie不连续加载重新加载