Я только что настроил аналогичный тест и не могу повторить проблему (см. Код ниже):
<script type="text/javascript">
$(document).ready(function () {
$("#test").validate();
if ($("input[id$='txtText']").length) {
$("input[id$='txtText']").rules('add', {
required: false,
email: true,
messages: {
email: 'Please enter a valid email.'
}
});
}
});
</script>
<form id="test">
<input type="text" id="txtText" />
<input type="submit" />
</form>
Я использую jQuery 1.5.1 и последнюю версию jquery.validate.min.js
Я могу только предложить, чтобы вы сделали селектор jQuery более конкретным, поскольку id$='TextBoxEmail'
означает, что он заканчивается на «TextBoxEmail». Это может быть проблемой, если у вас есть конфликтующие имена полей?