我有两个输入,例如
pass: <input type="password" name="pass" required/>
pass again: <input type="password" name="pass2" required/>
我想要比较这些输入,如果它们匹配,则将输入设置为有效。我试过了,但我认为prop('valid', true);
不起作用:
$(document).ready(function() {
$('input[name=pass2]').keyup(function() {
if($('input[name=pass]').val() == $('input[name=pass2]').val()) {
$('#pass_hint').empty();
$('#pass_hint').html('match');
$(this).prop('valid', true);
} else {
$('#pass_hint').empty();
$('#pass_hint').html('mismatch');
$(this).prop('invalid', true);
}
});
});
我创建了一个注册表,如果密码不同,输入字段是无效的,我不能提交这个并给我一些提示。...and我不知道如何将此输入设置为无效
发布于 2013-08-08 22:58:23
在HTMLInputElement interface中,没有valid
或invalid
这样的属性。
您可以将setCustomValidity(error)
方法与本机表单验证一起使用。
至于您的脚本,这里有一个应该可以在所有兼容HTML5的浏览器中运行的演示:
$('input[name=pass2]').keyup(function () {
'use strict';
if ($('input[name=pass]').val() === $(this).val()) {
$('#pass_hint').html('match');
this.setCustomValidity('');
} else {
$('#pass_hint').html('mismatch');
this.setCustomValidity('Passwords must match');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action='#'>
<p>Password:
<input name=pass type=password required>
</p>
<p>Verify:
<input name=pass2 type=password required>
</p>
<p id=pass_hint></p>
<button type=submit>Submit</button>
</form>
https://stackoverflow.com/questions/18128882
复制相似问题