警报关闭后表单输入为空

form inputs are empty after alert closing

<form id='formregister' autocomplete='off'>
    <input type='text' name='user' maxlength='50' placeholder='* Username'>
    <input type='text' name='pass' maxlength='50' placeholder='* Password'>
    <input type='text' name='name' maxlength='50' placeholder='Ime'>
    <button id='btnregister'>Register</button>
</form>

javascript

$('#btnregister').click(function(){
$.ajax({
    url: 'regpro.php',
    type: 'post',
    data: $('#formregister').serialize(),
    success: function(data) {
        if (data == 'exists') {
            alert ('user already exists');  // after closing form is empty!
        }
        else if (data =='empty'){
            alert ('something is missing'); // after closing form is empty!
        }
        else{
            if (window.confirm('Registration is successfull. Do you wont to login?')){
                window.location.href = 'login.php';  // doesn't work
            }
            else {
                window.location.href = 'index.php';  // doesn't work
            }
        }
    }
});
});

那么为什么在关闭警报后表单输入变为空,为什么在关闭确认对话框后重定向不起作用?

您应该将 event.preventDefault(); 添加到您的代码中:

$('#btnregister').click(function(event){
    event.preventDefault();
    ...
});

此方法将在您单击按钮时禁用表单的默认提交操作。