什么';这个jQuery函数有什么问题?

什么';这个jQuery函数有什么问题?,jquery,jquery-mobile,Jquery,Jquery Mobile,有人能解释一下为什么这个函数不起作用吗 <form id="spot-search"> <label for="text-basic">Postcode</label> <input type="text" name="postcode" id="postcode" value=""> </br> <label for="slider">within mile radius</label

有人能解释一下为什么这个函数不起作用吗

<form id="spot-search">
    <label for="text-basic">Postcode</label>
    <input type="text" name="postcode" id="postcode" value="">
    </br>
    <label for="slider">within mile radius</label>
    <input type="range" name="radius" id="radius" value="50" min="0" max="200">
    </br>
    <label>Select spot type</label>
    <a href="#spot-type" data-role="button">All</a>
    </br>
    <input type="submit" value="Search">
</form>

<div id="map1">
    map 1 goes here
</div>
<div id="map2">
    map 2 goes here
</div>
<div id="map3">
    map 3 goes here
</div>
<div id="map4">
    map 4 goes here
</div>
<div id="map5">
    map 5 goes here
</div>

邮政编码

方圆英里以内
选择点类型
地图1在这里 地图2在这里 地图3在这里 地图4在这里 地图5在这里
提交时应运行此功能:

$('#spot-search').submit(function(e) {
    var radius = getElementById('#radius');

    if ($radius<=40) {
        $('#spot-search').hide();
        $('#map1').show();
    } elseif($radius>40 && $radius<=80) {
        $('#spot-search').hide();
        $('#map2').show();
    } elseif($radius>80 && $radius<=120) {
        $('#spot-search').hide();
        $('#map3').show();
    } elseif($radius>120 && $radius<=160) {
        $('#spot-search').hide();
        $('#map4').show();
    } elseif($radius>160 && $radius<=200) {
        $('#spot-search').hide();
        $('#map5').show();
    }
    e.preventDefault();
}
$(“#现场搜索”).submit(函数(e){
var radius=getElementById(“#radius”);

如果($radius40&&$radius80&&$radius120&&$radius160&&$radius语法错误1

 elseif($radius>40 && $radius<=80) {
//--^
而不是

var radius = getElementById('#radius');

如果需要,请在其他之间添加空格

$('#spot-search').submit(function (e) {
    var radius = $('#radius').val();

    if ($radius <= 40) {
        $('#spot-search').hide();
        $('#map1').show();
    } else if ($radius > 40 && $radius <= 80) {
        $('#spot-search').hide();
        $('#map2').show();
    } else if ($radius > 80 && $radius <= 120) {
        $('#spot-search').hide();
        $('#map3').show();
    } else if ($radius > 120 && $radius <= 160) {
        $('#spot-search').hide();
        $('#map4').show();
    } else if ($radius > 160 && $radius <= 200) {
        $('#spot-search').hide();
        $('#map5').show();
    }
    e.preventDefault();
}
$(“#现场搜索”).submit(函数(e){
var radius=$('#radius').val();

如果($radius 40&&$radius 80&&$radius 120&&$radius 160&&$radius这一行有问题
var radius=getElementById('#radius');

应该是

 $('#spot-search').submit(function (e) {
    var radius = parseInt($('#radius').val());

    if (radius <= 40) {
        $('#spot-search').hide();
        $('#map1').show();
    } else if (radius > 40 && radius <= 80) {
        $('#spot-search').hide();
        $('#map2').show();
    } else if (radius > 80 && radius <= 120) {
        $('#spot-search').hide();
        $('#map3').show();
    } else if (radius > 120 && radius <= 160) {
        $('#spot-search').hide();
        $('#map4').show();
    } else if (radius > 160 && radius <= 200) {
        $('#spot-search').hide();
        $('#map5').show();
    }
    e.preventDefault();
}
$(“#现场搜索”).submit(函数(e){
var radius=parseInt($('#radius').val();

如果(半径40&&radius 80&&radius 120&&radius 160&&radius您的变量名是
radius
,但您正在引用
$radius

尝试:

另外,如果您没有关闭submit()函数,而elseif想要更好的语法,那么它就是
else

    $('#spot-search').submit(function (e) {
    var radius = $('#radius').val();

    if (radius <= 40) {
        $('#spot-search').hide();
        $('#map1').show();
    } else if ((radius > 40) && (radius <= 80)) {
        $('#spot-search').hide();
        $('#map2').show();
    } else if ((radius > 80) && (radius <= 120)) {
        $('#spot-search').hide();
        $('#map3').show();
    } else if ((radius > 120) && (radius <= 160)) {
        $('#spot-search').hide();
        $('#map4').show();
    } else if ((radius > 160) && (radius <= 200)) {
        $('#spot-search').hide();
        $('#map5').show();
    }
    e.preventDefault();
});
$(“#现场搜索”).submit(函数(e){
var radius=$('#radius').val();

如果(radius 40)&(radius 80)&(radius 120)&(radius 160)&(radius这里的各种答案都集中在问题的不同方面(潜伏者:请向上投票那些有帮助的人),那么我将在社区答案中总结它们:

  • 如果
  • (注意空格),则为
    else,而不是
    elseif

  • 您已经使用了变量名
    radius
    ,但是在引用它时,您使用了
    $radius
    。如果没有问题,请选择一个并保持一致。我将使用
    radius

  • 使用
    $(“#radius”)
    代替
    getElementById(“#radius”)
    (第一个版本有两个不同的问题:1.
    getElementById
    文档的属性,而不是全局属性。2.您不使用选择器,只使用ID。)

  • 您使用的
    radius
    就像它是一个数字一样,但它是一个对象(如果使用
    getElementById
    ,它是DOM元素;如果使用
    $()
    ,它是一个jQuery对象)。因此,您可能需要
    .val()
    这里也有。虽然当您执行
    radius<40
    之类的操作时,JavaScript会将字符串转换为数字,但通常最好显式解析它。因此:

    var radius = parseInt($("#radius").val(), 10); // 10 = base 10
    
  • 您尚未关闭对
    submit
    的调用,您需要在代码中最后一个
    }
    之后添加一个
    );


  • 另外,如果您正在使用
    或者if
    ,则不需要后续条件的初始
    半径>=XX&
    部分。

    尝试
    document.getElementById
    。您可以定义
    radius
    ,但使用
    $radius
    未定义。var radius=getElementById('\radius'));如果您这样使用它,请删除散列标记var radius=getElementById('radius');但是如果您使用jQuery为什么不使用var radius=$('#radius');?三个答案,都是正确的,都是不同的,都是不完整的——因为有(至少)该代码中有三个不同的错误。下次使用浏览器的控制台查看发生了什么。可能会出现一些错误。旁注:如果您使用的是
    ,否则如果
    ,则没有理由出现
    ($radius>xx&&
    以下情况的一部分。。。
        $('#spot-search').submit(function (e) {
        var radius = $('#radius').val();
    
        if (radius <= 40) {
            $('#spot-search').hide();
            $('#map1').show();
        } else if ((radius > 40) && (radius <= 80)) {
            $('#spot-search').hide();
            $('#map2').show();
        } else if ((radius > 80) && (radius <= 120)) {
            $('#spot-search').hide();
            $('#map3').show();
        } else if ((radius > 120) && (radius <= 160)) {
            $('#spot-search').hide();
            $('#map4').show();
        } else if ((radius > 160) && (radius <= 200)) {
            $('#spot-search').hide();
            $('#map5').show();
        }
        e.preventDefault();
    });
    
    var radius = parseInt($("#radius").val(), 10); // 10 = base 10