【问题标题】:assigning selected="selected" to dynamic option list将 selected="selected" 分配给动态选项列表
【发布时间】:2012-11-10 10:34:32
【问题描述】:

在“编辑文章”页面中,我有一个选择列表,其中显示作者的名字和姓氏,以及 authorId 作为值。以及文章上下文和标题等(使用不同的方法获取) - 尽管此方法还包含特定文章的 authorId。

我需要在选项列表中选择文章的作者,而不是默认选择列表中的第一个选项。

我有什么:

回声''; //遍历选项列表中的作者姓名 $authors_name

            foreach($authors_name as $nameRow){

                echo'<option class="authorId" value = "' . $nameRow['AuthorID'] . '">'. $nameRow['FirstName'].'

'.$nameRow['LastName'] .''; }

          echo'</select>';

和 jquery:

var currID = ('#selectAuthor').val();

    if(('.authorId').val() == currID){
          $('.authorId').addClass('new_class')
          $('.new_class').prop('selected',true);  
    }

var currID = ('#selectAuthor').val();

    if($("select option[value=currID]").attr('selected','selected'));

任何帮助将不胜感激,我希望我想要做的事情很清楚。 提前致谢

我只用常规输入对其进行了简化,并在 jsfiddle.net 中对其进行了检查 这是 HTML

';

<option value = "2">Name val 2</option>
<option value = "5">Name val 5</option>
<option value = "1">Name val 1</option>

这里是jquery

var currID = $('#selectAuthor').val(); if($("select option[value='+currID+']").prop('selected',true));​

即使那样,它也不会将 selected="selected" 应用于 value="1" 的选项

【问题讨论】:

    标签: jquery select dynamic option


    【解决方案1】:

    我不确定您为什么不在服务器代码中添加selected。至于你的 jQuery,你有几个问题。

    首先,您有语法问题,应该会在浏览器控制台中引发错误。只需查看控制台即可为您节省这一步

    var currID = ('#selectAuthor').val();
    

    应该是:

    var currID = $('#selectAuthor').val();
    

    下一个语法问题出现在第二个版本中,当您将currID 传递到字符串中时,您将其添加为字符串文本,而不是作为连接到字符串中的变量。

    if( $("select option[value='+currID+']").attr('selected','selected'));
    

    但这仍然是个问题,因为您设置的是 attr 而不是 getting it. Useprop` 方法,它会返回一个布尔值

     if( $("select option[value='+currID+']").prop('selected'));
    

    第一个版本的问题是:

      if(('.authorId').val() == currID)
    

    语法再次(使用浏览器控制台!!!)...缺少$。即使使用正确的语法,您也无法检查元素集合上一个 if 中的所有值。它只会返回第一个的值。这就像为 20 个不同的人要求一个电话号码。您要么必须使用 each() 方法遍历所有集合并使用 if 来检查每个集合,要么使用 filter()

     $('.authorId').filter(function(){
           return this.value == currID;
     }).prop('selected',true)
    

    【讨论】:

    • 感谢您的回答,@charlietfl,我相应地修复了代码,它不起作用,并且与您的回答没有任何关系 - 我确定我不是做对了,我想按照您的建议尝试在我的服务器代码中执行此操作-您能帮帮我吗?正如你所看到的,我在这方面真的很陌生。
    • 必须检查错误!!这始终是关键步骤#1。将一些示例 html 和您的代码放入 jsfiddle.net 中的演示中
    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2019-09-21
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    相关资源
    最近更新 更多