Проблема с пользовательским методом проверки jQuery - PullRequest
0 голосов
/ 29 сентября 2010

У меня есть список выбора, значение по умолчанию (для Пожалуйста, выберите) равно 0. Это связано с системой обработки платежей и вне моего контроля.У меня есть add.Method, который заявляет, если значение выбора "0" возвращает ложь, в противном случае возвращает истину.Это работает нормально, за исключением того, что когда вы изменяете значение выбора на что-то другое после отправки и получения ошибки, сообщение об ошибке все еще отображается.Как мне исправить это

HTML:

<form action="" method="post" id="SinglePmnt">
    <td>
     <select name="technology" class="select" id="singleTech">
      <option value="0" selected="selected">&nbsp;Please Select</option>
      <option value="Interactive Brokers">&nbsp;Interactive Brokers</option>
      <option value="MB Trading">&nbsp;MB Trading</option>
      <option value="Patsystems">&nbsp;Patsystems</option>
      <option value="PFG">&nbsp;PFG (Peregrine Financial)</option>
      <option value="TD AMERITRADE">&nbsp;TD AMERITRADE</option>
      <option value="Trading Technologies">&nbsp;Trading Technologies</option>
      <option value="Vision Financial Markets">&nbsp;Vision Financial Markets</option>
      <option value="Hosted">&nbsp;Zen-Fire</option>
     </select>
    </td>
    <td>Single Payment of $995</td>
    <td>
      <input type="hidden" name="item_number" value="34">
      <input type="submit" value="" class="orderNow" />
    </td>
</form>

правило проверки с использованием jquery.validate.js

$(document).ready(function() {
        $.validator.addMethod(
            "SelectTechnology",
            function(value, element) {
                if ($("#singleTech").val() === '0'){
                    return false;
                } else return true;
            },
            "Please Select a Technology"
        );
        var validator = $("#SinglePmnt").validate({
            rules: {
                    technology: {
                        SelectTechnology: true
                    }
            },
            errorElement: "span",
            errorPlacement: function(error, element) {
                error.appendTo(element.parent("td"));
            }
        });
    });

Не вижу ошибку в этом,Я ценю любую помощь.спасибо

Ответы [ 2 ]

1 голос
/ 29 сентября 2010

Когда вы используете jsfiddle (с немного неортодоксальным способом добавления элементов в iframe), вам нужно включить JS непосредственно в раздел HTML ниже, где вы ссылаетесь на свой плагин. Кажется, у меня все работает, используя только ваш код:

http://jsfiddle.net/Yjt98/1/

Это то, что вы хотите, верно? Похоже, что проверка полей с событием onchange. Дай мне знать, ожидаешь ли ты другого поведения.

0 голосов
/ 30 сентября 2010

Попробуйте принудительно выполнить проверку в событии размытия.

$('#singleTech').click(function() {
  $('#SinglePmnt').validate().element('#singleTech');
});

$('#singleTech').blur(function(){
  $('#SinglePmnt').validate().element('#singleTech');
});

jQuery change () на

Ссылка в реальном времени, которую вы разместили ранее, работает в IE, но не в FireFox.

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