Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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
Jquery 切换可见性的代码优化_Jquery_Drop Down Menu_Jquery Events - Fatal编程技术网

Jquery 切换可见性的代码优化

Jquery 切换可见性的代码优化,jquery,drop-down-menu,jquery-events,Jquery,Drop Down Menu,Jquery Events,好吧,伙计们,这是我的问题。我正在一个人们可以注册x的网站上工作。我有一个州的下拉菜单供人们选择。根据他们对州的选择,我有另一份医院名单,可供选择,这取决于他们对州的选择。所以,如果你选择夏威夷,你将只看到夏威夷的医院,而不是德克萨斯州,例如。我有一个根据复选框的值切换可见性的函数,但我似乎无法使它对下拉列表的值起作用。有什么想法吗?如果有一种更快或更符合行业标准的方法来解决这个问题,任何朝着正确方向的转向都将受到极大的赞赏 我想用的是: $(document).ready(function()

好吧,伙计们,这是我的问题。我正在一个人们可以注册x的网站上工作。我有一个州的下拉菜单供人们选择。根据他们对州的选择,我有另一份医院名单,可供选择,这取决于他们对州的选择。所以,如果你选择夏威夷,你将只看到夏威夷的医院,而不是德克萨斯州,例如。我有一个根据复选框的值切换可见性的函数,但我似乎无法使它对下拉列表的值起作用。有什么想法吗?如果有一种更快或更符合行业标准的方法来解决这个问题,任何朝着正确方向的转向都将受到极大的赞赏

我想用的是:

$(document).ready(function() 
{  $('#stateinjured').change(function()
    {  
        $('#stateinjuredky').toggle(this.checked); 
    }); 

});

您应该研究jQuery的AJAX,它速度快,不需要本地服务器就可以使用它,您可以使用web服务器


请看这里:

我认为您的id和样式在错误的元素上。您还需要一些逻辑来确定选择了什么,然后显示正确的列表。下面的代码在页面加载时仅显示1个选择框,然后根据选择的内容显示请求的列表:

$(document).ready(function() 
{
    $('#stateinjured').change(function() {
        var selectedOption = $(this + "option:selected").val();
        if (selectedOption == "Kentucky") {
            $("#stateinjuredky").css("display","block");
        }
        //or you could just have the select ids be the state names, then you wouldn't need all these if...else statements
    }); 
});
然后

<select id="stateinjured">
    <option selected="selected">Select your state</option>
    <option>Kentucky</option>
    <option>West Virginia</option>
    <option>Ohio</option>
    <option>Tennessee</option>
</select>
<br/>
<select id="stateinjuredky" style="display: none;">
    <option selected="selected">Choose hospital you visited</option>
    <option>hospital1</option>
    <option>hospital2</option>
    <option>hospital3</option>
</select>
<!-- more selects for other states -->

但是,正如其他人所说,确实有更有效的方法可以做到这一点。

您是否考虑过使用AJAX调用来填充医院列表?我很想知道如何做到这一点,但我没有:/。刚刚开始使用jquery。另外,这台计算机没有管理员权限,我无法在其上安装apache。我可以在我的网站上测试ajax,尽管ajax调用是不需要的,除非它是数据库驱动的。它应该是数据库驱动的,但不是必需的。Ajax非常有用,它基本上允许您远程调用另一个文件,可以是HTML、文本、PHP或其他文件。我建议你们花大约2个小时研究JSON,了解$.ajax是如何工作的。-若这是一个学校项目或什么的,你们可以制作一个医院的javascript数组,而不是求助于ajax调用。-我只是说你们不需要ajax,因为知道ajax的用途很重要,而不是如何使用它。所以没有一个好的jQuery修复程序?熟悉AJAX需要多少时间来执行这个级联下拉列表?如果你想用jQuery解决这个问题,你可能会花很长时间编写代码,而你只需要在眨眼之间创建一个AJAX函数。jquery.com网站准备就绪后,很快就会了解AJAX语法和用法:试试看;好吧,但如果我搞不懂,我会烦你的。谢谢你的帮助。你能给我指出一个正确的方向吗?除了我正在研究的AJAX之外,还有什么可能呢?不,AJAX主要是我指的。您将有第二个页面根据传递的参数生成列表。然后你可以有一个div或者其他东西,你可以从第二页加载数据。使用jqueryload语句,您可以加载页面片段并将数据数组传递给服务器进行处理。
<select id="stateinjured">
    <option selected="selected">Select your state</option>
    <option>Kentucky</option>
    <option>West Virginia</option>
    <option>Ohio</option>
    <option>Tennessee</option>
</select>
<br/>
<select id="stateinjuredky" style="display: none;">
    <option selected="selected">Choose hospital you visited</option>
    <option>hospital1</option>
    <option>hospital2</option>
    <option>hospital3</option>
</select>
<!-- more selects for other states -->