Как получить проп ('проверено') это внутри именованной функции change () - PullRequest
0 голосов
/ 01 января 2019

Хорошо, так что я проверяю, проверено ли значение свойства true или falseприведенный ниже код прекрасно работает:

var $artistip = null;

var $chkbx = $('input[name="artist"]');

$chkbx.change( function(){
var $checked = $(this).prop('checked');

if($checked) {
    $artistip = $(this).val();

}else {
    $artistip = null;

}


});

Я хочу превратить весь этот код в именованную функцию, например:

$djchkbx.change( function() {
getCheckBoxValue($djchkbx,$djtip);});
var $djtip = null;

var $djchkbx = $('input[name="dj"]');

function getCheckBoxValue(thisckbox, $uniqueVariable){
var $checked = $djchkbx.prop('checked');
console.log($checked);

if($checked) {
    $uniqueVariable = $(this).val();
    console.log('Checked');
    console.log($uniqueVariable);
}else {
    $uniqueVariable = null;
    console.log('Un Checked');
    console.log($uniqueVariable);
}

}

ПРОБЛЕМА - это то, что я продолжаю получать False.

Оригинальный код работает как шарм.Именованная функция, которую я создаю, не работает должным образом, просто возвращает false.

Я буду использовать код много, так как у меня есть несколько флажков ввода для проверки.Поэтому я действительно хочу сделать функцию многократного использования, которая будет выполнять те же функции, что и мой исходный код.

1 Ответ

0 голосов
/ 02 января 2019

Сначала очистите свой код.Переместить все объявления var наверх.Затем удалите параметры функции getCheckBoxValue - вы все равно их не используете или, по крайней мере, разумным образом.В вашем обработчике change вызовите вашу именованную функцию следующим образом:

getCheckBoxValue.call(this);

Таким образом, this в вашей именованной функции будет таким же this, как и в вашем обработчике событий.

В вашей именованной функции вы можете получить доступ к элементу флажка, как в вашем фрагменте кода: $(this)

Присвоить $(this).val() или null непосредственно $djtip - присвоение параметру функции неиметь смысл.Если вы не можете напрямую присвоить $djtip, поскольку именованная функция используется в разных контекстах, верните значение и выполните присвоение в функции-обработчике анонимного события.

...