Как изменить опцию выпадающего, выбранного с JQuery AJAX - PullRequest
1 голос
/ 16 января 2011

Код Jquery

 $( function() {

        $( '#copy' ).click(function() {
            var enid = $("#enid").text(); 
            $('#copy').html('Loading...');
        $.ajax( {
                        url : 'http://localhost/crm/customers/copy_enquirer',
                        type : 'post',
                        data : "enid="+enid,
                        success : function( resp ) {
                                     $('#race').val($('#inner_3',resp).html());
                        }
            });
               return false;
        });
    });

моя форма

 <select name="race" id="race">
<option value="chinese">Chinese</option>
<option value="indian">Indian</option>
<option value="malay">Malay</option>
<option value="other">Other</option>
</select>  

if is $ ('# race'). Val ('malay');форма изменится на малайский при нажатии, но если это будет $ ('# race'). val ($ ('# inner_3', resp) .html ());выпадающий список не изменится после нажатия.Я должен использовать $ ('# race'). Val ($ ('# inner_3', resp) .html ());поскольку значение является динамическим.

1 Ответ

0 голосов
/ 16 января 2011

Потому что вы делаете:

$('#inner_3',resp).html();

То, что на самом деле происходит в фоновом режиме:

$(resp).find('#inner_3').html();

Если #inner_3 находится на верхнем уровне HTML-кода, который был возвращен, метод find() (документы) не поможет вам, так как он смотрит только на потомков элементов верхнего уровня.

Вместо этого вам нужно будет использовать filter() (документы) .

$('#race').val( $(resp).find('#inner_3').html() );

Кроме того, сохраняйтепомните, что вам может потребоваться использовать jQuery.trim() (документы) , чтобы вырезать любые пробелы из HTML, если они есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...