別の条件が存在する場合にのみ、選択ボックスの値がゼロより大きいことを検証する必要があります。私はさまざまなものを用意しており、私が言えることから、それは機能するはずですが、そうではありません。
私のカスタム検証方法:
jQuery.validator.addMethod("greaterThanZero", function(value, element) {
return this.optional(element) || (parseFloat(value) > 0);
}, "* Amount must be greater than zero");
これは正常に動作します (address_stateid がゼロより大きいことを検証するという点で):address_stateid: { "greaterThanZero":true },
これも問題なく動作します (address_stateid が 0 より大きいことを検証しないという点で):address_stateid: { "greaterThanZero":false },
ただし、true/false をこのように条件付きに変更すると、require_state の値に関係なく、true であるかのように動作します。
address_stateid: { "greaterThanZero":function(){return require_state;} },//ALWAYS VALIDATES AS IF require_state IS TRUE
require_state 値は、別のフィールドの選択に基づいて true または false に設定されます。これが変更されると、「require_state」の値がコンソールに出力され、false に設定されている場合でも、条件付き検証が開始されていることがわかりますが、開始されるべきではありません。
ここで私が間違っていることを誰かが見ることができますか?
ありがとう