2

ページの他の設定に従って、javascript を介して表示または非表示にされる div (parent1) 内に一連のラジオ ボタンがあります。

<div class="parent1">
<input type="radio" name="legal_14" id="legal_14a" value="1" class="legal_14"/> <label for="legal_14a">option 1</label><br/>
<input type="radio" name="legal_14" id="legal_14b" value="2" class="legal_14"/> <label for="legal_14b">option 2</label><br/>
<input type="radio" name="legal_14" id="legal_14c" value="3" class="legal_14"/> <label for="legal_14c">option 3</label><br/>
<span class="val-error"></span><br/>
</div>

ラジオボタンが表示されているときにのみ検証したい。したがって、この状況を次のように処理するための依存関係コールバックがあります。

 "legal_14": {
  required: function() {if (!$('.parent1').is(':visible')) {console.log(false); return false;} else if ($("input[name='legal_14']:checked").length > 0) {console.log(false); return false;} else {console.log(true); return true;}}},
...
errorPlacement: function(error, element) {
  element.nextAll(".val-error").first().html(error.html());
},
success: function(label) {
  label.nextAll(".val-error").first().html();
}

したがって、これは正しい状況 (つまり、ボタンが表示されているがクリックされていない場合) でエラー メッセージを表示するのに問題なく機能します。問題は、ラジオ ボタンの 1 つを選択すると、console.log が適切に false を返しますが、エラー メッセージが消えないことです。私は他の場所にも同様の依存関係コールバックを持っていますが、これは正常に機能する可視性に依存しません。私は何を間違っていますか?

4

1 に答える 1

0

私が理解していることに基づいて、これはうまくいくはずです:

if($(".parent1").is(":visible"))
{
    // do validation 

   // return message 
}
于 2012-06-09T08:24:34.447 に答える