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
如何使用jQuery使某些内容消失?_Jquery - Fatal编程技术网

如何使用jQuery使某些内容消失?

如何使用jQuery使某些内容消失?,jquery,Jquery,我有以下下拉列表: <select name="chooseLanguage"> <option>Choose One</option> <option value="java">Java</option> <option value="php">PHP</option> <option value="c++">C++</option> </selec

我有以下下拉列表:

<select name="chooseLanguage">
    <option>Choose One</option>
    <option value="java">Java</option>
    <option value="php">PHP</option>
    <option value="c++">C++</option>
</select>

选一个
JAVA
PHP
C++
如果在此下拉列表中选择了除默认的“选择一个”之外的任何内容(当然是预选的),则我希望此输入字段消失:

<input type="file" name="uploadFile" />
$("div.product").slideUp('slow').addClass("removed");

如何使用jQuery实现这一点(如果可能的话,使用一个很好的淡入淡出效果)

编辑

我的全部代码,由于某种原因,没有一个答案对我有效

<script type="text/javascript" src="jquery/jquery-1.4.2.min.js"></script>

<script type="text/javascript">
$(function(){
  $("#chooseLanguage").change(function(){
    if ($(this).val() == '') {
      $("#uploadFile").hide();
    } else {
      $("#uploadFile").show();
    }
  });
});
</script>

<form action="" method="post">

<select name="chooseLanguage" id="chooseLanguage">
  <option>Choose One</option>
  <option value="java">Java</option>
  <option value="php">PHP</option>
  <option value="c++">C++</option>
</select>

<input type="file" name="uploadFile" id="uploadFile" />

</form>

$(函数(){
$(“#选择语言”).change(函数(){
if($(this.val()=''){
$(“#上载文件”).hide();
}否则{
$(“#上传文件”).show();
}
});
});
选一个
JAVA
PHP
C++

然后您可以使用
$('#uploadFile').hide()


正如您所建议的那样,为了达到相反的效果,..

给输入一个
id
,比如
id=“myupload”

然后,简单地说:

$('#myupload').fadeOut('slow');
你可以这样做:

$('select[name="chooseLanguage"]').change(function(){
  if ($(this).val())
  {
     $('input[name="uploadFile"]').fadeOut('slow');
  }
});

这里有另一种方法。 示例:查找CSS类为“product”的所有
元素,并设置它们的动画以使其慢慢消失:

<input type="file" name="uploadFile" />
$("div.product").slideUp('slow').addClass("removed");

jQuery

$(document).ready(function(){
  $("#chooselanguage").change(function(){
    if ($("#chooselanguage").attr("selectedIndex")>0) {
      $("#fileupload").fadeOut();
    } else {
      $("#fileupload").fadeIn();
    }
  });
});
HTML

<select id="chooselanguage" name="chooseLanguage">
  <option>Choose One</option>
  <option value="java">Java</option>
  <option value="php">PHP</option>
  <option value="c++">C++</option>
</select>

选一个
JAVA
PHP
C++

其他答案几乎正确,但缺少一两个小细节。这有望“开箱即用”


只要给“chooseLanguage”选择框一个“chooseLanguage”的ID,给上传输入一个“uploadFile”的ID即可。

+1对于漂亮的标题,David Copperfield应该是一个SO用户:)我的示例成功了。要使代码正常工作,请将
$(this.val()='')更改为
($(this.attr)(“selectedIndex”)>0)
。那么它的工作原理和我下面的代码一样好。太好了,非常感谢Gert它现在可以工作了。你为什么把Wireblue标记为正确答案?他的解决方案不起作用。@Gert哦,天哪,对不起,Gert,我想是他写的修复评论。我现在觉得自己很愚蠢:(+1-除了检查
$(this).val()
不会有什么好处,因为如果没有
值设置,它会返回选项中包含的文本(无论如何,对于某些浏览器)。我还没有选择任何正确的答案,因为没有一个答案对我有效,包括你的。请查看我在问题中的编辑,我已经发布了我的全部代码。你能运行它并查看它为什么不起作用吗?Ron道歉。因为“选择一个”选项缺少空白值属性,IF语句无法正常工作。对您的答案进行了投票。Gert G。感谢Wireblue。非常感谢。:)