首页 > 解决方案 > 动态禁用禁用字段的 Parsley 验证

问题描述

我正在使用 Parsley 验证我的表单。

我已经重新编写了很多 StackOverflow 问题。但没有什么对我有用

问题是,在开始时我有两个禁用的密码字段,它们将通过一个复选框启用:

$('#chk_change_pass').on('change', function() {
    if ($(this).is(':checked')) {
      $('[name=password]')
      .prop('disabled', false);
    }
    else {
      $('[name=password]')
      .prop('disabled', true);
    }
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<form data-parsley-validate>
    <input type="checkbox" id="chk_change_pass">
    <input type="password" name="password" data-parsley-excluded="[disabled]" disabled required>
    <input type="submit">
</form>

<script src="https://cdnjs.cloudflare.com/ajax/libs/parsley.js/2.8.1/parsley.min.js"></script>

禁用后不排除在开始时也不排除

标签: javascriptjqueryvalidationparsley.js

解决方案


您需要使用change,而不是ifChanged触发复选框更改

$('#chk_change_pass').on('change', function() {
    if ($(this).is(':checked')) {
      $('[name=password]')
      .prop('disabled', false);
    }
    else {
      $('[name=password]')
      .prop('disabled', true);
    }
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<form data-parsley-validate>
    <input type="checkbox" id="chk_change_pass">
    <input type="password" name="password" data-parsley-excluded="[disabled]" disabled >
    <input type="submit">
</form>

<script src="https://cdnjs.cloudflare.com/ajax/libs/parsley.js/2.8.1/parsley.min.js"></script>


推荐阅读