如何在HTML表单上实时显示错误? (包括 JavaScript)
How to display error in real-time on HTML form? (Javascript included)
我试图在注册表单上实时显示错误,而不是被重定向到另一个页面 (register.php)。
我网站的索引页有一个注册 link,它会在新的 window 中打开一个弹出注册表 (registration.HTML)。当用户提交此表单时
它调用 register.PHP 作为一个动作。 register.php里面有一行代码:
js_include('js/register.js');
此 javascript 检查某些数据是否在 registration.html 内正确提交。我希望在 提交表单之前 执行此检查
并使其重定向到 register.php。如果 javascript 说一切都好,我只需要它指向 register.php。
你可以自己测试一下here如果你点击右上角的"sign up",然后输入乱码作为电子邮件并按回车,它将重定向到register.php并在底部显示错误(如果向下滚动)。 我希望在注册表单上显示此错误。
我尝试在 html 页面的一些脚本标签中包含以下 js,但它仍然会重定向我。
这里是register.js,欢迎大家反馈!谢谢
$(document).ready(function() {
$('.formFieldWarning').hide();})
function checkRegisterFormSubmit() {
$('.formFieldWarning').hide();
var errors = 0;
// Check the user name
if($('#username').val() == '') {
$('#username_warning1').show();
errors++;
} else {
if ($('#username').val().length < 2 ) {
$('#username_warning2').show();
errors++;
}
}
// Check the password
if ($('#password').val().length < 2 ) {
$('#password_warning1').show();
errors++;
} else {
if ($('#password').val() == $('#username').val() ) {
$('#password_warning2').show();
errors++;
}
}
// Check the password_verification
if ($('#password_verification').val() != $('#password').val() ) {
$('#password_verification_warning1').show();
errors++;
}
// Check the email address
if($('#email').val() == '') {
$('#email_warning1').show();
errors++;
} else {
if ($('#email').val().search(/^\w+((-|\.|\+)\w+)*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z]{2,63}$/) == -1) {
$('#email_warning2').show();
errors++;
}
}
if (errors != 0) {
$('#form_not_submit_top').show();
$('#form_not_submit_bottom').show();
return false;
} else {
return true;
}
}
这是一个如何使用 jQuery 的 blur()
函数测试表单字段的示例 -
$('input[name="foo"]').blur(function() {
var currentValue = $(this).val();
var testValue = 'crumple';
if(currentValue != testValue) {
$(this).next('span').html('FAIL');
} else {
$(this).next('span').html('');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input name="foo" type="text" /><span></span>
我试图在注册表单上实时显示错误,而不是被重定向到另一个页面 (register.php)。
我网站的索引页有一个注册 link,它会在新的 window 中打开一个弹出注册表 (registration.HTML)。当用户提交此表单时 它调用 register.PHP 作为一个动作。 register.php里面有一行代码:
js_include('js/register.js');
此 javascript 检查某些数据是否在 registration.html 内正确提交。我希望在 提交表单之前 执行此检查 并使其重定向到 register.php。如果 javascript 说一切都好,我只需要它指向 register.php。
你可以自己测试一下here如果你点击右上角的"sign up",然后输入乱码作为电子邮件并按回车,它将重定向到register.php并在底部显示错误(如果向下滚动)。 我希望在注册表单上显示此错误。
我尝试在 html 页面的一些脚本标签中包含以下 js,但它仍然会重定向我。
这里是register.js,欢迎大家反馈!谢谢
$(document).ready(function() {
$('.formFieldWarning').hide();})
function checkRegisterFormSubmit() {
$('.formFieldWarning').hide();
var errors = 0;
// Check the user name
if($('#username').val() == '') {
$('#username_warning1').show();
errors++;
} else {
if ($('#username').val().length < 2 ) {
$('#username_warning2').show();
errors++;
}
}
// Check the password
if ($('#password').val().length < 2 ) {
$('#password_warning1').show();
errors++;
} else {
if ($('#password').val() == $('#username').val() ) {
$('#password_warning2').show();
errors++;
}
}
// Check the password_verification
if ($('#password_verification').val() != $('#password').val() ) {
$('#password_verification_warning1').show();
errors++;
}
// Check the email address
if($('#email').val() == '') {
$('#email_warning1').show();
errors++;
} else {
if ($('#email').val().search(/^\w+((-|\.|\+)\w+)*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z]{2,63}$/) == -1) {
$('#email_warning2').show();
errors++;
}
}
if (errors != 0) {
$('#form_not_submit_top').show();
$('#form_not_submit_bottom').show();
return false;
} else {
return true;
}
}
这是一个如何使用 jQuery 的 blur()
函数测试表单字段的示例 -
$('input[name="foo"]').blur(function() {
var currentValue = $(this).val();
var testValue = 'crumple';
if(currentValue != testValue) {
$(this).next('span').html('FAIL');
} else {
$(this).next('span').html('');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input name="foo" type="text" /><span></span>