繁体   English   中英

试图用jQuery选择选择框的值

[英]trying to select value of a select box with jquery

我看了这个例子,但是无法实现。 我想知道我是否还想念其他东西。

注意: response.user_data['admin']不为null。 我检查了。

有任何想法吗?

谢谢

没有工作线

$('#select_administrator option[value="'+response.user_data['admin']+'"]');
$('#select_administrator option:eq('+response.user_data['admin']+')').attr('selected', 'selected');
$('#select_administrator option:eq('+response.user_data['admin']+')').prop('selected', true);

的HTML

<select id="select_administrator" name="select_administrator">
    <option value="NO" <?php echo ($administrator == 'NO') ? 'selected="selected"' : null; ?>>NO</option>
        <option value="YES" <?php echo ($administrator == 'YES') ? 'selected="selected"' : null; ?>>YES</option>
</select>

JQUERY

$(document).ready(function()
{
   $("#select_user").change(function(event)
   {
      event.preventDefault();

      var selected_user = null;
      selected_user = $(this).val();

      $.ajax({
                 type       : "POST",
                 url        : 'mypage.php',
                 data       : {select_user:selected_user},
                 dataType   : "json",
                 success        : function(response)
         {
            if(response.status == "success")
                    {
                        $("#form_errors_jquery").hide();

                        $("#text_username").val(response.user_data['username']);

                        //response.user_data['admin'];
                        //Should select admin combo here

        //$('#select_administrator option[value="'+response.user_data['admin']+'"]');
        //$('#select_administrator option:eq('+response.user_data['admin']+')').attr('selected', 'selected');
        //$('#select_administrator option:eq('+response.user_data['admin']+')').prop('selected', true);

                    }
                    else
                    {
                        $("#form_errors_jquery").html(response.error).fadeIn(1000);
                    }
         },
                 error      : function(response)
                 {
                     $("#form_errors_jquery").html("A network error occured").fadeIn(1000);
         }

      return false;
   });
});

好吧,对于初学者,您的jquery会在更改$("#select_user").change(function(event)时选择它,但是您的html是<select id="select_administrator" name="select_administrator">因此您可能希望选择请更正select元素的ID,然后重试。

此外,这两者都可以与HTML一起使用。 我的猜测是您的response.user_data ['admin']带有空格,或者格式未正确返回。

$(document).ready(function() {
   $('#select_administrator option[value="NO"]').prop('selected', true); 
});​

$(document).ready(function() {
   $('#select_administrator option[value="NO"]').attr('selected','selected'); 
});​

编辑:我做了一个jsfiddle ,将上面的代码与您要尝试的内容进行了归纳 ,这两个选项根本不起作用:

 $('#select_administrator option:eq('+response.user_data['admin']+')').attr('selected', 'selected');
 $('#select_administrator option:eq('+response.user_data['admin']+')').prop('selected', true);

但是如果添加attr('selected','selected'); 首先尝试使其看起来像这样:

$('#select_administrator option[value="'+response.user_data['admin']+'"]').attr('selected', 'selected');

它工作正常。 试试看,让我知道吗?

为了解决这个问题,我最终改用了这段代码,但是为什么上面的原始代码不起作用?

if (response.user_data['admin'] == 'YES')
{
    $('#select_administrator').val('YES');
}
else
{
    $('#select_administrator').val('NO');
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM