代码之家  ›  专栏  ›  技术社区  ›  eliocs

按文本选择选项

  •  1
  • eliocs  · 技术社区  · 14 年前

    我的代码摘录:

    javascript语言

         $("#id_propietario").change(
            function() {
                if ($("#id_propietario :selected").text() == '{{ usuario.username }}') {
                    alert('test');
                } else {
                    $("#id_adeudado").val($("#id_adeudado option[text='{{ usuario.username }}']").val());
                }
            }
          );
    

    html表单元素

     <p><label for="id_propietario">Propietario:</label> <select name="propietario" id="id_propietario">
     <option value="" selected="selected">---------</option>
     <option value="1">elio</option>
     <option value="2">up1</option>
     <option value="3">up2</option>
     </select></p>
     <p><label for="id_adeudado">Adeudado:</label> <select name="adeudado" id="id_adeudado">
     <option value="" selected="selected">---------</option>
     <option value="1">elio</option>
     <option value="2">up1</option>
     <option value="3">up2</option>
     </select></p> 
    

    $("#id_adeudado").val('{{ usuario.username }}');
    

    注意,django正在替换{usuario.username用户名}}使用当前用户名。我的代码无法工作,因为jQuery没有使用text='value'选择器选择option元素。 我怎样才能克服这个问题?

    提前谢谢

    p、 s:这是我第一次使用jQuery

    2 回复  |  直到 14 年前
        1
  •  1
  •   Andy E    14 年前

    您可以这样检查以获取所选内容的文本 <option>

    $("#id_adeudado :selected").text();
    

    这将设置选定的 <选项> 文本值:

    $("#id_adeudado option").filter(function() {
      return this.value == '{{ usuario.username }}';
    }).attr('selected', true);
    
        2
  •  2
  •   eliocs    14 年前

    $("#id_adeudado option[text='{{ usuario.username }}']")
    

    工作

    $("#id_adeudado option:contains('{{ usuario.username }}')")