【发布时间】:2019-12-03 10:34:43
【问题描述】:
我在使用表单标签保存之前使用模式来检查字符长度
pattern=".{6,}" oninvalid="this.setCustomValidity('Password must be 6 atleast characters')"
但是当我使用 ajax/jquery 保存时这不起作用。它直接保存文本而不检查字符长度/模式
这是我的表单和 ajax/jquery(它在模式中)
<div style="text-align:center;">
<div style="display:inline-block">
<input type="password" id="password" class="my-2 form-control"
placeholder="Type password" name="" pattern=".{6,}" oninvalid="this.setCustomValidity('Password must be
6 atleast characters')" required><br>
<input type="password" id="confirm_password" class="mt-2 form-control"
onclick="repass()" placeholder="Retype password" name="" pattern=".{6,}"
oninvalid="this.setCustomValidity('Password must be 6 atleast characters')" required><br>
<span id='message'></span>
</div>
</div>
</div>
<div class="modal-footer">
<button type="submit" name="submit" class="btn btn-primary" id="submit_password" disabled>Change Password</button>
<a href="admin_logout.php">
<button type="button" class="btn btn-danger">Logout</button>
</a>
</div>
<script>
function repass(){
$('#password, #confirm_password').on('keyup keydown', function () {
if ($('#password').val() == $('#confirm_password').val()) {
$('#message').html(' ').css('color', 'red');
$('#submit_password').attr("disabled", false);
} else{
$('#submit_password').attr("disabled", true);
$('#message').html('Password does not match').css('color', 'red');
}
// if (($('#password').val()) == null) {
// $('#message').html(' ').css('color', 'red');
// $('#submit_password').attr("disabled", true);
//
// }
});
}
</script>
<script>
$("#submit_password").click(function(e) {
// e.preventDefault();
var password = $('#password').val();
$.ajax({
type: 'POST',
data: {password:password},
url: 'change_pass.php',
success: function(data) {
// alert(data);
swal( {
title: "SUCCESS!", text: "Password changed!", icon: "success", timer: 1800, button: false,
}
);
$('#change_pass').modal('hide');
}
});
});
</script>
【问题讨论】:
-
使用
$("form").on("submit",function(e) { e.preventDefault(); ...而不是单击提交按钮 - 如果您不想提交表单以及执行 ajax,则 preventDefault 是强制性的 -
@freedomn-m 不幸的是没有。我在问这个问题之前已经看到了,但它没有回答它,或者它在某些部分可以回答,但我不够熟练,无法知道。