Валидатор jquery - возможно ли установить текст в тег HTML, который не проверен? - PullRequest
0 голосов
/ 23 марта 2011

Я использую валидатор jquery для проверки поля в моей форме:

$.validator.addMethod('positiveNumber',
    function (value) { 
        return Number(value) > 0;
    }, 'L\'année ne peut pas être négative.');

    $('#leapyear').validate({
    errorPlacement: function(error, element){
         error.appendTo(element.parent("td").next('td'));
         }
    });

Форма выглядит так:

<form id="leapyear" name="leapyear" action="Calculateur-Dates.html" method="post">
<table style="padding-left: 70px; width: 100%">
<colgroup>
<col width="25%"> 
<col width="15%">   
<col width="20%">   
<col width="40%">   
</colgroup>
<tr>
<td class="calc_label">Year to be checked</td>
<td>
<input class="calc_input required positiveNumber" size="10" type="text" value = "2012" name="leap_year" id="leap_year" /></td>
<td class="validatorErrMsg"></td>
<td id="checkResult" class="calc_resMsg green">2012 is a leap year</td>
</tr>
<tr>
<td>
&nbsp;
</td>
<td>
<center><button style="padding-left: 10px" id="leapYearBtn" name="submit" class="lnk_button" value="vérifier">vérifier</button></center>
</td>
<td colspan="2">
&nbsp;
</td>
</tr>
</table>
</form>

Проверка работает нормально, однако я также хотел бы, чтобы скрипт выдавал текст из td # checkResult при возникновении ошибки. Я не уверен, возможно ли это, и если да, то как действовать. Есть ли способ сделать это?

Заранее спасибо

Ответы [ 3 ]

2 голосов
/ 23 марта 2011

Вы должны быть в состоянии сделать это

$('td #checkResult').html('""');
0 голосов
/ 23 марта 2011

Попробуйте использовать invalidHandler, получите число с помощью validator.numberOfInvalids (), если больше 0, очистите $ ('# checkResult'). Html ('');

$('#leapyear').validate({
    errorPlacement: function(error, element){
         error.appendTo(element.parent("td").next('td'));
         },
    invalidHandler: function() {
         if (validator.numberOfInvalids() > 0)
         $('#checkResult').html('');
         }
    });
0 голосов
/ 23 марта 2011

Благодаря строке кода от Марка я подумал о том, чтобы посмотреть на проблему под другим углом зрения, и добавил для этого отдельную функцию jQuery:

$('#leapYearBtn').click(function(){
$('td#checkResult').html('');
});

, которая делает то, что я намеревался сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...