【问题标题】:Detect HTML Option Value Using jQuery [duplicate]使用 jQuery 检测 HTML 选项值
【发布时间】:2011-08-17 12:20:56
【问题描述】:

可能重复:
How to get the text of the selected option of a select using jquery?

我有以下脚本:

<select id = "people">
<option value = "0">Choose</option>
<option value = "1">John</option>
<option value = "2">David</option>
</select>

如何使用 jQuery 检测当前选择的选项的值?

即(伪代码)

if(people.option.text == "Choose"){
   //Alert - Please make a selection
}else{
   //Valid - do something
}

编辑:代码不工作

  echo("<script>");
  echo("$(document).ready(function(){");
  echo("$(\"#go\").click(function(e){");
  echo("var selText = $(\"#people option:selected\").text();");
  echo("if(selText == \"Choose\"){");

  echo("}else{");
  echo("window.location.href = \"viewprofile.php\";");
  echo("}");
  echo("});");
  echo("});");
  echo("</script>");

它不断触发 else 语句并导航离开......

编辑:让它工作 -> 更改了 .text() 和 val()

【问题讨论】:

  • 首先,你的value属性值应该用双引号括起来:&lt;option value="0"&gt;Choose&lt;/option&gt;
  • 抱歉打错字了 - 临时输入
  • 这里没有任何理由使用echo。只需将标记/JS 代码放入文件中即可。

标签: javascript jquery select


【解决方案1】:

从您的示例看来,您想要获取选定的文本,而不是值。

所以有这个:

var selText = $("#people option:selected").text();
if(selText == "Choose") {
   //Alert - Please make a selection
} else {
   //Valid - do something
}

要获取选定的值并检查它,有这样的代码:

var selValue = parseInt($("#people").val(), 10);
if (selValue == 0) {
    //Alert - Please make a selection
} else {
    //Valid - do something
}

【讨论】:

  • 这就是我想要的!我正在尝试但无济于事..我已经更新了我的代码。唯一的区别是我使用 php 编写 HTML - 但这不应该影响问题
  • 你能看看我的编辑->我的代码似乎总是触发 else 语句...
  • 当你添加alert('selected text: ' + selText);时你看到了什么?
【解决方案2】:
if (jQuery('#people option:selected').val()=="Choose"){
}
else{
}

【讨论】:

    【解决方案3】:

    检查使用val 选择的值,然后采取适当的措施。在表单提交处理程序中显示如下,以防止表单提交。对于这种特殊情况,您可能还需要考虑使用 validate 插件,使该字段为必填项,并使默认选项没有值。

    $(function() {
       $('form').submit( function() {
           var selectedPerson = $('#people').val();
           if (!selectedPerson || selectedPerson == '0') {
              alert('you must choose an option for people');
              return false;
           }
           // continue form validation and submission
       });
    });
    

    【讨论】:

      【解决方案4】:

      要获取所选&lt;option&gt;value,请使用:

      $('select').val()
      

      要获取所选&lt;option&gt; 的 HTML 内容,请使用:

      $'select :selected').html()
      

      要检查是否选择了某个&lt;option&gt;,请使用:

      if ($('option').is(':selected')) ...
      

      【讨论】:

        【解决方案5】:

        这个怎么样:

                $("select option:selected").each(function () {
                    if($(this).text()=="Choose") ...
                    else ...
                });
        

        【讨论】:

        • 我需要检测所选值是否等于'choose'...所以只需一个简单的 if/else 检查所选值
        【解决方案6】:
        if ($('#people [value!=0]:selected').length > 0){
            //selected
        } else {
            //not selected
        }
        

        【讨论】:

        • 但我的默认选项是“选择”,所以这不起作用
        • 这并没有显示在你的 html 中。编辑答案
        • 是--> ...
        • NO ITS NOT - 您没有显示选择了哪个元素。你说'我的默认选项是选择'。你的代码没有显示。当前(默认)选择的选项应该由 selected="selected" 显示。
        • @kissmyface:如果没有选项被标记为选中,默认选择第一个。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-16
        • 2012-05-12
        • 2011-09-24
        • 1970-01-01
        • 1970-01-01
        • 2011-11-01
        • 1970-01-01
        相关资源
        最近更新 更多