但是我代码里有密码框长度、必填项等校验规则,你这样只是显示与隐藏,隐藏之后还是会提醒必填项未填
时间: 2024-03-27 12:40:42 浏览: 120
详细解读AngularJS中的表单验证编程
非常抱歉,我理解有误。对于这种情况,可以采用以下方案:
1. 新增账号页面中,密码输入框要求用户必须填写,否则无法提交表单。在密码输入框的标签中添加 required 属性即可实现该功能。
2. 修改账号页面中,可以添加一个“修改密码”的复选框,并为该复选框设置一个 ID,比如“change-password”。在密码输入框的标签中添加一个属性 data-required-if,值为“#change-password:checked”,即表示当“修改密码”复选框被勾选时,密码输入框为必填项。
3. 添加一个 JavaScript 函数,用于在页面加载时和“修改密码”复选框状态变化时,自动执行密码输入框的必填项校验。可以使用 jQuery 等框架,或者原生 JavaScript 实现。
以下是示例代码,仅供参考:
```
<!-- 新增账号页面 -->
<form>
<label for="password">密码:</label>
<input type="password" id="password" name="password" required>
<!-- 其他表单项 -->
<button type="submit">提交</button>
</form>
<!-- 修改账号页面 -->
<form>
<label for="change-password">修改密码:</label>
<input type="checkbox" id="change-password" name="change-password">
<br>
<label for="new-password" data-required-if="#change-password:checked">新密码:</label>
<input type="password" id="new-password" name="new-password" data-required-if="#change-password:checked">
<!-- 其他表单项 -->
<button type="submit">提交</button>
</form>
<script>
$(function() {
// 页面加载时执行必填项校验
$('input[required]').each(function() {
validateRequired($(this));
});
// 修改密码复选框状态变化时执行必填项校验
$('#change-password').on('change', function() {
$('input[data-required-if]').each(function() {
validateRequired($(this));
});
});
});
function validateRequired($input) {
var requiredIf = $input.data('required-if');
if (!requiredIf || $(requiredIf).prop('checked')) {
$input.prop('required', true);
} else {
$input.prop('required', false);
}
}
</script>
```
在上述代码中,新增账号页面中的密码输入框设置了 required 属性,修改账号页面中的密码输入框通过 data-required-if 属性指定了“修改密码”复选框的状态。在 JavaScript 中,使用 validateRequired 函数来执行必填项校验,该函数根据输入框的 data-required-if 属性判断是否进行校验,如果需要校验,则将输入框的 required 属性设置为 true,否则设置为 false。在页面加载时和“修改密码”复选框状态变化时,执行该函数来自动进行必填项校验。
阅读全文