如何更改使用jquery ajax选择的下拉选项

发布于 2024-10-11 23:49:49 字数 1069 浏览 0 评论 0原文

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'); onclick 时表单会变成马来语,但 if 是 $('#race').val($('#inner_3',resp).html()); onclick后下拉列表不会改变。我必须使用 $('#race').val($('#inner_3',resp).html());因为该值是动态的。

Jquery code

 $( 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;
        });
    });

my form

 <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'); the form will change to Malay when onclick, but if is $('#race').val($('#inner_3',resp).html()); the dropdown list will not change after onclick. I have to use $('#race').val($('#inner_3',resp).html()); since the value is dynamic.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

时光沙漏 2024-10-18 23:49:49

因为您正在做:

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

后台实际发生的事情是:

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

如果 #inner_3 位于返回的 HTML 的顶层,则 find()(docs)方法不会帮助您,因为它只查看顶级元素的后代

您需要使用 filter()(docs)< /i> 相反。

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

另外,请记住,您可能需要使用 jQuery.trim()< support>(docs) 删除 HTML 中的任何空格(如果有)。

Because you're doing:

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

What is actually happening in the background is:

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

If #inner_3 is at the top level of the HTML that was returned, the find()(docs) method won't help you since it only looks at descendants of the top level elements.

You'll need to use filter()(docs) instead.

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

Also, keep in mind that you may need to use jQuery.trim()(docs) to trim any whitespace from the HTML if there is any.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文