本文介绍了jQuery-获取选择值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试通过jQuery从下拉列表中获取选定的值。单击发送时,我有一些JavaScript可以验证表单,以确保没有空格,代码如下:

  function formCheckDancer(formobj){
//输入必填字段的名称
var fieldRequired = Array( dancerStageName, dancerFullName, dancerPhone, dancerEmail, dancerCountry, dancerAvailableDate );

//输入要显示在对话框中的字段描述
var fieldDescription = Array( Stage Name, Full Name, Phone Number, Email Address, Nationality , 可用性);

//对话消息
var alertMsg =请填写以下字段:\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;
}
休息;
case select-multiple:
if(obj.selectedIndex == -1){
alertMsg + =- + fieldDescription [i] + \n;
}
休息;
case text:
case textarea:
if(obj.value == || obj.value == null){
alertMsg + =- + fieldDescription [i] + \n;
}
休息;
case checkbox:
if(obj.checked == false){
alertMsg + =- + fieldDescription [i] + \n;
}
休息;
默认值:
}
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(); //如果填写了所有字段,则发送电子邮件。
返回true;
} else {
alert(alertMsg);
返回false;
}
}

函数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国籍= $(#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:舞台名称,全名:全名,电话:电话,电子邮件:电子邮件,国籍:国籍,availability:Availability},函数(数据){
$(#contact_form_result_dancer)。html(data);
});
setTimeout( contactReturnDancer(),4000);
返回false;
}

在这种情况下,国籍是我想要的值。如您所见,我已经尝试过:

  var国籍= $(#dancerCountry)。val(); 

这似乎无效。



如果我输入以下警报语句:alert(obj.options [obj.selectedIndex] .text);在情况选择一个之后,将输出正确的值,因此我知道其正确传递了。



我只是不确定如何在sendDetailsDancer函数中捕获它。



任何帮助表示赞赏。 / p>

致谢,
Stephen

解决方案

var国籍= $(#dancerCountry)。val(); 应该可以。您确定元素选择器工作正常吗?也许您应该尝试:

  var nationality = $(’select [name = dancerCountry]’)。val(); 


I'm trying to get the selected value from a drop down list via jQuery. I have a bit of javascript that validates a form when I click SEND, to make sure there are no blanks, code is as follows:

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;
        }

In this case Nationality is the value I want. As you can see I've tried:

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

which doesn't seem to work.

If I put the following alert statement: alert(obj.options[obj.selectedIndex].text); after case "select-one" the correct value is output so I know its being passed correctly.

I'm just not sure how to capture it in the sendDetailsDancer function.

Any help appreciated.

Regards,Stephen

解决方案

var nationality = $("#dancerCountry").val(); should work. Are you sure that the element selector is working properly? Perhaps you should try:

var nationality = $('select[name="dancerCountry"]').val();

这篇关于jQuery-获取选择值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-30 03:47