Проблема с jQuery Validation Plugin

AN
На сайте с 14.03.2007
Offline
47
2594

Прикручиваю jQuery Validation Plugin для формы.

Атрибуты name у формы имеют следующий вид name="data[new][telefon]".

Когда прописываю в скрипте:

data[new][telefon]: {

required: true,

minlength: 20

}

Скрипт не работает, а firebug выдает ошибку "missing : after property id".

Проблема в названии атрибута, как это data[new][telefon] записать что бы работало.

Верстка. Портфолио (http://webvector.ru/)
nezabor
На сайте с 19.07.2010
Offline
152
#1

ну вообще-то у Вас id и не указан

nezabor добавил 13.05.2011 в 11:13

<form id="myForm" action="editlk.php" method="POST">

<label>Телефон:*</label>
<input id="phone" name="phone" type="text" value="{$UserSel->phone}" />
<div class="oshib" id="phone"><em></em></div><br />
<button type="submit" name="save_lk"><b>Сохранить</b></button>
</form>

<script type="text/javascript">

$(document).ready(function(){
// ---- Форма -----
// готовим опции для метода
// ajaxSubmit плагина jquery.form.js
var options = {
target: "#output",
timeout: 300 // тайм-аут
};
$("#myForm").validate({
submitHandler: function(form) {
// вызываем метод ajaxSubmit
// плагина jquery.form.js
// $(form).ajaxSubmit(options);
$("#myForm").submit();
//sendForm('editlk.php', 'myForm', 'my_div');

},
focusInvalid: false,
focusCleanup: true,
rules: {
input_phone : {
number: true,
required: true
}
},
messages: {
input_phone : {
number: "Телефон должен содержать только цифры",
required: "Нужно указать ваш телефон"
}
},
errorPlacement: function(error, element) {
var er = element.attr("name");
error.appendTo( element.parent().find("div[@id='" + er + "']").find("em") );
}
});
// ---- Форма -----
});

</script>
Чудес не бывает...
AN
На сайте с 14.03.2007
Offline
47
#2

Скрипт обрабатывает параметр name, а не id.

Проблема в том, что name="data[new][telefon]", если бы name="telefon" проблем бы не было.

Как записать data[new][telefon], что бы скрипт не выдавал ошибку?

nezabor
На сайте с 19.07.2010
Offline
152
#3

может вам есть смысл прислать весь кусок и уточнить на какую строку ругается, а то есть мнение что у вас просто пропущено двоеточие но в вашем куске который вы выложили я не вижу ошибок, не стесняйтесь выкладывайте

AN
На сайте с 14.03.2007
Offline
47
#4

Ничего не пропущено.

Пробовал менять name, скрипт работает.

Проблема в такой записи data[new].
Вот код:
$(document).ready(function() {
$("#mail-go").validate({
focusInvalid: false,
focusCleanup: true,
rules: {
data[new][name]: {
required: true,
minlength: 20
},

data[new]: {
required: true,
email: true
},
data[new][telefon]: {
required: true,
minlength: 20
},
data[new][not_bot]:{
required: true
}
},

messages: {
name: {
required: "Введите имя пользователя"
},
email: {
required: "Введите адрес ящика",
email: "Введите корректный адрес"
}
}
});
});

nezabor
На сайте с 19.07.2010
Offline
152
#5

извините конечно, но на какую именно строчку ругается

nezabor добавил 13.05.2011 в 13:12

попробуйте так

$(document).ready(function() {
$("#mail-go").validate(function() {
focusInvalid: false,
focusCleanup: true,
rules: {
data[new][name]: {
required: true,
minlength: 20
},

data[new]: {
required: true,
email: true
},
data[new][telefon]: {
required: true,
minlength: 20
},
data[new][not_bot]:{
required: true
}
},

messages: {
name: {
required: "Введите имя пользователя"
},
email: {
required: "Введите адрес ящика",
email: "Введите корректный адрес"
}
}
});
});
AN
На сайте с 14.03.2007
Offline
47
#6

Проблема в data[new][telefon] на это выдает ошибку, как это прописать, что бы работало.

nezabor
На сайте с 19.07.2010
Offline
152
#7

$("#mail-go").validate(function() { вы это вставили и не работает? (извините за назойливость)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий