jQuery条件可见性

4

我有一个场景,需要在一组输入字段中的任何一个包含值时显示一堆按钮,并在所有输入字段都为空时隐藏这些按钮。

除了将一些代码附加到输入字段的焦点事件上以检查它们的内容并相应地显示/隐藏之外,我想不出更优雅的方法。

是否有更好的方法来实现这个功能?

谢谢

2个回答

2
$(function(){

   var $fields = $('input[type=text]'),
       $btn = $('#btnid'),
       i;

   $btn.hide();

   $fields.blur(function(){
      for(i = 0; i < $fields.length; i++){
         if($fields[i].value != '') {
            $btn.show();
            return;
         }
      }
      $btn.hide();
   });
});

http://jsfiddle.net/crVeA/3/


2

HTML

<form id="myForm">
    <input .../>
    <select .../>
    <!-- etc. -->
</form>

JavaScript

$(function ()
{
    var $myForm = $('#myForm'),
        $inputs = $myForm.find('input, select'),
        $buttons = $('select a bunch of buttons');

    $myForm.change(function ()
    {
        $buttons.toggle(!!$inputs.filter(function ()
        {
            // NB, using .val() won't work for checkboxes
            return !!$(this).val();
        }).length);
    }).change();
});

http://jsfiddle.net/mattball/BjQaZ/


我喜欢你在表单上附加变更事件的方式 - 从未使用过 - #不错 - Alex
@Alexander,这就是我要编写的代码。谢谢你帮我省去了打代码的时间;像你一样,我从未尝试过在表单上使用@Matt的更改事件。很好。非常感谢你们两个。干杯! - djeetee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接