Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery将值选择到变量中_Javascript_Jquery - Fatal编程技术网

Javascript JQuery将值选择到变量中

Javascript JQuery将值选择到变量中,javascript,jquery,Javascript,Jquery,我已经看了所有的地方,不明白为什么这个代码不起作用 当下拉列表设置为值“3”或“4”时,应在下拉列表下方弹出另一个字段。 有什么想法吗? 更改此项: var val = $('#event_options_id option:selected').html(); 致: 首先,您需要像前面指出的那样调用.val() var val = $('#event_options_id option:selected').val(); 然后根据您正在使用的选择器,您需要在val上使用parseInt

我已经看了所有的地方,不明白为什么这个代码不起作用

当下拉列表设置为值“3”或“4”时,应在下拉列表下方弹出另一个字段。 有什么想法吗?

更改此项:

var val = $('#event_options_id option:selected').html();
致:

首先,您需要像前面指出的那样调用
.val()

var val = $('#event_options_id option:selected').val();
然后根据您正在使用的选择器,您需要在val上使用
parseInt()
,使其成为这样的数字

if ($.inArray(parseInt(val,10), arr) > -1) {
在定义数组时,还有一个额外的逗号

完整工作代码

$(document).ready(function() {

    $('#event_options_id').change(function() {

        $('.container_add_form').remove();

        var val = $('#event_options_id option:selected').val();
        var arr = [3, 4];

        if ($.inArray(parseInt(val,10), arr) > -1) {
            $('<input type="hidden" name="age_required" id="age_required" value="yes" /><div class="container_add_form"><p class="text_content">Please enter your age for grouping purposes.<br /><input name="age" type="text" id="age" size="3" /></p></div>').fadeIn('slow').appendTo('.add_form');
        }
    });
});​
$(文档).ready(函数(){
$('#事件_选项_id')。更改(函数(){
$('.container\u add\u form').remove();
var val=$('#事件_选项_id选项:选定')。val();
var-arr=[3,4];
if($.inArray(parseInt(val,10),arr)>-1){
$(“

请输入您的年龄以便分组。

”).fadeIn('slow')。appendTo('add\u form'); } }); });​
1)使用
.val()
而不是
.html()
来获取选项的值

2) 您正在将字符串值与数组中的数字进行比较,这将始终失败

我更新了你的代码:

$(文档).ready(函数(){
$('#事件_选项_id')。更改(函数(){
$('.container\u add\u form').remove();
//您使用了.text(),但应该使用.val()
var val=$('#事件_选项_id选项:选定')。val();
var-arr=[3,4];
/*
另一个问题是没有将值解析为整数
但是您将该值与整数数组进行比较
*/
if($.inArray(parseInt(val),arr)>-1){
$(“

请输入您的年龄以便分组。

”).fadeIn('slow')。appendTo('add\u form'); } }); });
更改这些行

    var val = $('#event_options_id option:selected').val();
    var arr = ["3", "4"];
要获取组合框值,必须使用“val()”而不是“html()”。 您必须将数组的元素更改为字符串。
变量val是一个字符串。inArray将尝试将元素作为字符串而不是整数来查找。

很好,也许我不知道问题出在哪里。我将其放入了小提琴中,但幸运的是没有找到它。感谢您的帮助。$(“#事件_选项_id选项:已选定”)已经过时了。可能是因为我没有遵循StackOverflow的应答规则。我在StackOverflow外部创建了一个只能通过访问链接访问的答案。通常,链接是获取额外信息的资源,而不是答案本身。答案的文本应张贴在StackOverflow上。因为我看到其他人给出了很好的答案,所以我没有费心更新/完成我的答案。
var val = $('#event_options_id option:selected').val();
var arr = ['3', '4'];
$(document).ready(function() {

    $('#event_options_id').change(function() {

        $('.container_add_form').remove();

        // you used .text() but should've used .val()
        var val = $('#event_options_id option:selected').val();
        var arr = [3, 4];

        /*
            another problem was that you didn't parse the value into an integer
            but you were comparing the value to an array of integers
        */
        if ($.inArray(parseInt(val), arr) > -1) {
            $('<input type="hidden" name="age_required" id="age_required" value="yes" /><div class="container_add_form"><p class="text_content">Please enter your age for grouping purposes.<br /><input name="age" type="text" id="age" size="3" /></p></div>').fadeIn('slow').appendTo('.add_form');
        }
    });
});
    var val = $('#event_options_id option:selected').val();
    var arr = ["3", "4"];