Javascript Если заявление не работает в автозаполнении

0

У меня есть следующий код Javascript, который отлично работает с автозаполнением, а также заполняет 5 дополнительных полей ввода на основе загруженного массива из MySQL в файле type_code.php.

Шестой элемент массива val (имена [6]) заполняется значением базы данных либо да, либо Нет, и я пытаюсь использовать это значение, чтобы контролировать, будет ли дополнительное поле формы считываться или считываться на передней панели.

Кажется, что мой оператор if плохо отформатирован, как будто я запускаю две строки кодов без if, если все работает так, как ожидалось.

        // Autocomplete Invoice To from Code and sets ReadOnly/ReadWrite based on Editable field in Code record
        $('#add_at_inv2_code1').autocomplete({
            source: function( request, response ) {
                $.ajax({
                    url : 'type_code.php',
                    dataType: "json", 
                    method: 'post',
                    data: {
                        name_startsWith: request.term,
                        type: 'code_table',
                        row_num : 1
                    },
                    success: function( data ) {
                        response( $.map( data, function( item ) {
                            var code = item.split("|");
                            return {
                                label: code[0],
                                value: code[0],
                                data : item
                            }
                        }));
                    }
                });

            },
            autoFocus: true,              
            minLength: 0,
            select: function( event, ui ) {
                var names = ui.item.data.split("|");                        
                $('#desc_at_inv2_code1').val(names[1]);
                $('#add_at_inv2_code2').val(names[2]);
                $('#add_at_inv2_client').val(names[3]);
                $('#add_at_salesrep').val(names[4]);
                $('#add_at_category').val(names[5]);

                // Code that is not working
                if($(val(names[6])) == "Yes") {
                $('#add_at_inv2_client').prop('readonly',false);
                $('#add_at_inv2_client').prop('disabled',false);
                } else {
                $('#add_at_inv2_client').prop('readonly',true);
                $('#add_at_inv2_client').prop('disabled',true);
                }

            }               
        });

Может кто-то, пожалуйста, помогите мне структурировать это утверждение if правильно?

Спасибо, Adri

2 ответа

0
Лучший ответ

Метод val() возвращает или устанавливает атрибут value для выбранных элементов.

Примечание. Метод val() в основном используется с элементами HTML-формы.

использование

if(names[6] == "Yes") 

вместо

if($(val(names[6])) == "Yes")

================================================== =======================

<script type="text/javascript">
    // Autocomplete Invoice To from Code and sets ReadOnly/ReadWrite based on Editable field in Code record
            $('#add_at_inv2_code1').autocomplete({
                source: function( request, response ) {
                    $.ajax({
                        url : 'type_code.php',
                        dataType: "json", 
                        method: 'post',
                        data: {
                            name_startsWith: request.term,
                            type: 'code_table',
                            row_num : 1
                        },
                        success: function( data ) {
                            response( $.map( data, function( item ) {
                                var code = item.split("|");
                                return {
                                    label: code[0],
                                    value: code[0],
                                    data : item
                                }
                            }));
                        }
                    });

                },
                autoFocus: true,              
                minLength: 0,
                select: function( event, ui ) {
                    var names = ui.item.data.split("|");                        
                    $('#desc_at_inv2_code1').val(names[1]);
                    $('#add_at_inv2_code2').val(names[2]);
                    $('#add_at_inv2_client').val(names[3]);
                    $('#add_at_salesrep').val(names[4]);
                    $('#add_at_category').val(names[5]);

                    // Code that is not working
                    if(names[6] == "Yes") {
                        $('#add_at_inv2_client').prop('readonly',false);
                        $('#add_at_inv2_client').prop('disabled',false);
                    } else {
                        $('#add_at_inv2_client').prop('readonly',true);
                        $('#add_at_inv2_client').prop('disabled',true);
                    }

                }               
            });
    </script>
  • 0
    Спасибо! Это сделал это!
  • 0
    Может быть, добавить здесь некоторые объяснения
Показать ещё 1 комментарий
0
Need following change in your code
// Code that is not working
if(names[6] == "Yes") //Change this if($(val(names[6])) == "Yes")
{
   $('#add_at_inv2_client').prop('readonly',false);
   $('#add_at_inv2_client').prop('disabled',false);
}
else
{
   $('#add_at_inv2_client').prop('readonly',true);
   $('#add_at_inv2_client').prop('disabled',true);
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню