Jquery:隐藏基于contains in选项的链接按钮

时间:2013-09-15 02:42:08

标签: javascript jquery

编辑:将更具体的要求见底部添加:

我正在尝试隐藏一个链接(格式化为href的按钮),但我尝试根据选项下拉菜单中找到的文本进行操作。

所以例如

<form id="phonetypeform">
  <select name="porting-p1" class="dropdown">
     <option value="">Please select an option...</option>
     <option value="1">I want to keep my current phone number</option>
     <option value="2">I want to choose a new number</option>
   </select>
</form>
<a href="#" class="nextbutton">Next Step</a> 

如果选择了“请选择一个选项”,它会隐藏一个链接,如果选择了其他任何内容,则会显示该链接

这是我有的jquery无法正常工作

$(document).ready(function() {
$("a.nextbutton").hide()

$('.dropdown').change(function() {
    if($('.dropdown option:contains'Please)') {
      $('a.nextbutton',this).hide();
    } else {
      $("a.nextbutton")show();
    }
});

});

编辑从这里开始:

感谢所有给我一些答案的人,但是我现在有所作为,但它不理想,理想情况下想使用包含,简单的原因是我有大约20个这些脚本我必须创建和瞄准价值,丑陋!

显示我的确切要求请看小提琴,虽然这是有效的,因为我说我有很多这些脚本到位,理想情况下我想: 1.定位文本'select ...' 2.让它保持隐藏状态,直到所有选项都不再包含“选择...”(包含应该处理该权利)

这是一个让任何可以帮助的人生活更轻松的小提琴? http://jsfiddle.net/p3ewE/


结束编辑

4 个答案:

答案 0 :(得分:1)

请改为尝试:

$("a.nextbutton").hide();
$('.dropdown').change(function () {
    if ($('.dropdown').val() == "") {
        $('a.nextbutton', this).hide();
    } else {
        $("a.nextbutton").show();
    }
});

<强> jsFiddle example

您遇到了一些缺少句号和括号的语法问题。

答案 1 :(得分:0)

错字

if($('.dropdown option:contains(Please)') 
                               ^      ^

:contains()

使用此代码

DEMO

$('.dropdown').change(function () {
    if (this.value == "") {
        $('a.nextbutton').hide();
    } else {
        $("a.nextbutton").show();
    }
}).change();

答案 2 :(得分:0)

以下是链接http://jsfiddle.net/XXDwr/5/

看看它。

   $(document).ready(function() {


    $(".nextbutton").hide();

   $('.dropdown').on('change',function() {
    var h= $('.dropdown').val();
    if(h=="")
    {
          $(".nextbutton").hide();
    }
    else{
          $(".nextbutton").show();
    }

});
});

我希望你能实现这个目标。

答案 3 :(得分:0)

$(document).ready(function() {
  var btnNext = $("a.nextbutton").hide();

  $('.dropdown').change(function() {

      if(this.value){
          btnNext.show();
      } else {
          btnNext.hide();
      }
  });
});

你在“请”之前就有一个拼写错误。 您可以/应该将按钮保存在变量中,这样您就不必每次都进行该查询。