#jquery #function
#jquery #функция
Вопрос:
Я пытаюсь написать простую функцию проверки. Для некоторого ответа я не могу заставить функцию возвращать логическое значение. На данный момент я вообще не получил никакого ответа от нажатия кнопки отправить.
$.fn.ValidateSelect = function() {
//function ValidateSelect() { (this works)
var selected = $('select[name="my-item-size"]').val();
var validate = false;
if (selected != 'none') {
validate = true;
} else {
validate = false;
}
if (validate == true) {
return true
} else {
return false
}
};
//submit
$('.add_item_button').click(function() {
if (ValidateSelect() == true) {
$('#item_submit').submit();
} else {
alert('Please select your brand first.')
}
});
Комментарии:
1. Вы не вызываете функцию.
ValidateSelect
это имя переменной и будетundefined
. Если вы расширяете jQuery таким образом, вы бы предпочли вызвать его с$(selector).ValidateSelect()
помощью . Но, возможно, для вас достаточно простой, обычной функции.2. Теперь я сделал это обычной функцией, и она работает.
Ответ №1:
Вам нужно не расширение jQuery, а функция javascript.
function ValidateSelect() {
var selected = $('select[name="my-item-size"]').val();
var validate = false;
if (selected != 'none') {
validate = true;
} else {
validate = false;
}
if (validate == true) {
return true
} else {
return false
}
};
//submit
$('.add_item_button').click(function() {
if (ValidateSelect() == true) {
$('#item_submit').submit();
} else {
alert('Please select your brand first.')
}
});
Ответ №2:
я считаю, что это должно быть $.ValidateSelect() == true . Вызов ValidateSelect сам по себе будет означать, что это переменная, а не функция конкретно здесь.
Также я думаю, что было бы разумнее поместить ее в обычную функцию вне jQuery (по крайней мере, так кажется)
Приветствия
Ответ №3:
Вам нужно на самом деле вызвать функцию:-
$('.add_item_button').click(function() {
if (ValidateSelect() == true) {
$('#item_submit').submit();
} else {
alert('Please select your brand first.')
}