У меня есть следующий код
if($('#contact_name').val()==''){
$('#contact_name').closest('div').append('<p class="validate">name must be entered</p>');
error=true;
}
if($('#contact_add').val()==''){
$('#contact_add').closest('div').append('<p class="validate">address must be entered</p>');
error=true;
}
if($('#contact_mail').val()==''){
$('#contact_mail').closest('div').append('<p class="validate">mail must be entered</p>');
error=true;
}
if($('#contact_ph').val()==''){
$('#contact_ph').closest('div').append('<p class="validate">type your phone number</p>');
error=true;
}
Я должен менять каждый раз, когда селектор $ ('# contact_name'), $ ('# contact_add'),.... есть, так или иначе, что в том случае, если условие id, я могу выбрать это.....
Я уверен, что не могу использовать $ (это).....
Попробуйте это, используя селектор jQuery " начинается с ":
$('*[id^="contact_"]').each(function () {
if (this.value == '') {
$(this).closest('div').append('<p class="validate">some text</p>');
error = true;
})
};
Я использовал *
для таргетинга на все элементы, вы можете заменить его на div
, p
или что лучше соответствует вашим элементам.
Вы можете использовать each()
и множественный выбор:
$('#contact_name, #contact_add').each(function(){
if (this.value == '') {
$(this).closest('div').append('<p class="validate">some text</p>');
}
});
Или, используя filter()
выберите эти input
без значения:
$('div[id^="contact"]').filter(function(){
return this.value == '';
}).closest('div').append('<p class="validate">some text</p>');
При последнем подходе вы можете даже присвоить переменную error
(если это необходимо):
var error = $('div[id^="contact"]').filter(function(){
return this.value == '';
}).closest('div').append('<p class="validate">some text</p>').length > 0;
Рекомендации:
Я предполагаю, что идентификаторы имеют элементы формы (ввода). Если это так, вы можете перебирать элементы ввода следующим образом:
$('[id^="contact_"]').each(function () {
if (this.value == '') {
$(this).closest('div').append('<p class="validate">some text</p>');
error = true;
})
};
используйте в своем коде следующее:
$(document).ready(function(){
$("#ttt").submit( function(){
if($('#contact_name').val()==''){
$('#contact_name').closest('div').append('<p class="validate">some text</p>');
error=true;
}
if($('#contact_add').val()==''){
$('#contact_add').closest('div').append('<p class="validate">some text</p>');
error=true;
}
if($('#contact_mail').val()==''){
$('#contact_mail').closest('div').append('<p class="validate">some text</p>');
error=true;
}
if($('#contact_ph').val()==''){
$('#contact_ph').closest('div').append('<p class="validate">some text</p>');
error=true;
}
return false;
});
});
Добавьте класс к требуемым элементам, как это required
затем
var error = $('.required').filter(function () {
return $.trim($(this).val()) == '';
}).closest('div').append('<p class="validate">some text</p>').length > 0;