jQuery-获取选择值

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (23)

我正试图通过jQuery从下拉列表中获取选定的值。我有一些javascript,当我单击Send时验证表单,以确保没有空白,代码如下:

function formCheckDancer(formobj){                  
            // Enter name of mandatory fields
            var fieldRequired = Array("dancerStageName", "dancerFullName", "dancerPhone", "dancerEmail", "dancerCountry", "dancerAvailableDate");

            // Enter field description to appear in the dialog box
            var fieldDescription = Array("Stage Name", "Full Name", "Phone Number", "Email Address", "Nationality", "Availability");

            // dialog message
            var alertMsg = "Please complete the following fields:\n";           
            var l_Msg = alertMsg.length;

            for (var i = 0; i < fieldRequired.length; i++){
                var obj = formobj.elements[fieldRequired[i]];               
                if (obj){
                    switch(obj.type){
                    case "select-one":                      
                        if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == "" || obj.options[obj.selectedIndex].text == "..."){
                            alertMsg += " - " + fieldDescription[i] + "\n";
                        }
                        break;
                    case "select-multiple":
                        if (obj.selectedIndex == -1){
                            alertMsg += " - " + fieldDescription[i] + "\n";
                        }
                        break;
                    case "text":
                    case "textarea":
                        if (obj.value == "" || obj.value == null){
                            alertMsg += " - " + fieldDescription[i] + "\n";
                        }
                        break;
                    case "checkbox":
                        if (obj.checked == false){                  
                            alertMsg += " - " + fieldDescription[i] + "\n";
                        }
                        break;
                    default:
                    }
                    if (obj.type == undefined){
                        var blnchecked = false;
                        for (var j = 0; j < obj.length; j++){
                            if (obj[j].checked){
                                blnchecked = true;
                            }
                        }
                        if (!blnchecked){
                            alertMsg += " - " + fieldDescription[i] + "\n";
                        }
                    }
                }
            }

            if (alertMsg.length == l_Msg){
                return sendDetailsDancer(); //Send email if all field are populated.
                return true;                
            }else{
                alert(alertMsg);
                return false;
            }
        }

        function sendDetailsDancer(){                       
            var stagename = $("input[name=dancerStageName]").val();         
            var fullname = $("input[name=dancerFullName]").val();
            var phone = $("input[name=dancerPhone]").val();
            var email = $("input[name=dancerEmail]").val();                                                                                             
            var nationality = $("#dancerCountry").val();            
            var availability = $("input[name=dancerAvailableDate]").val();    

            $("#contact_form_result_dancer").html('<center><img src="loading.gif" width="32" height="32" /></center>');
            $("#contact_form_result_dancer").show();
            $.post("http://localhost/lapello/wp-content/themes/lapello/sendMailDancer.php", {stagename: stagename, fullname: fullname, phone: phone, email: email, nationality: nationality, availability: availability}, function (data){
                $("#contact_form_result_dancer").html(data);            
            });
            setTimeout("contactReturnDancer()", 4000);
            return false;
        }

在这种例子下,Nationality是我想要的值。正如你所看到的,我试过:

var nationality = $("#dancerCountry").val();

这似乎不管用。

如果我放置以下警报语句:警报(obj.Options)obj.selectedIndex在大小写“SELECT-One”之后,输出正确的值,这样我就知道它被正确地传递了。

我只是不知道如何在sendDetailsDancer函数中捕获它。

提问于
用户回答回答于

VAL()返回的的<select>元件,即,value所选择的属性<option>的元素。

既然你实际上需要所选元素的内部文本<option>,你应该匹配那个元素并使用text()来代替:

var nationality = $("#dancerCountry option:selected").text();

热门问答

腾讯云广州一区DNS变更,需要怎么操作?

思潮澎湃轻描淡写的生活,但思潮澎湃
推荐
我也收到相关的通知了,这里分享下~ 2019年1月31日,腾讯云将对广州地区旧的基础网络DNS服务器(10.225.30.181、10.225.30.223)进行下线。在此期间,腾讯云提供最新的DNS服务器供您更新使用。 我们建议您尽快将DNS服务器配置进行更新,并且我们为您提供...... 展开详请

快照容量与费用的比例?如何关闭停用?

帅的惊动我国计算机大神
推荐已采纳
快照已于2019年1月22日0时启动正式商业化进程,商业化后所有存量快照和新产生的快照将根据快照使用的存储容量进行收费。 在快照商业化后,腾讯云仍旧会在国内主要地域为用户提供一定量的免费额度。免费额度策略如下: 免费额度覆盖范围为中国大陆地域,中国香港及海外地域暂无免费快照额...... 展开详请

云服务器购买后多久生效能使用?

Eli Qiao

腾讯 · 高级工程师 (已认证)

腾讯云CVM后台高级研发工程师
推荐

如果使用公有镜像,一般 10s 左右后台就可以创建完成。

欠费资源销毁怎么解决?

西风

renzha.net · 站长 (已认证)

www.renzha.net
推荐
当您的账户发生欠费时,对象存储 COS 会在24小时后停止服务,您的数据可以继续保留120天,如果在此期间未进行续费使账户余额大于等于0, 您的数据将会被销毁。 注意: 欠费停服后,数据占用的存储容量会持续计费,直到销毁数据。 销毁数据后,不可恢复。 用户续费使账户余额大于等于...... 展开详请

React项目的try_files机制,在COS上怎么配置?

galenye

腾讯 · 工程师 (已认证)

对象存储专业搬砖工
推荐
COS的静态网站可以设置默认索引,你这里应该是想实现react-router spa场景下刷新浏览器时,不希望报404的场景吧 可以在COS静态网站这设置一个错误文档的默认索引来实现类似try_files的功能 image.png ... 展开详请

用户主动向云服务器的号码发送短信(不是回复),该条消息能否回调给业务服务器?

推荐

您好,主动上行需配置专属上行码号,月发送量大于300万条可申请配置。未配置专属上行码号用户可先下发短信后用户回复。感谢您对腾讯云短信的支持。

所属标签

扫码关注云+社区