使用jquery确定它是什么类型的输入字段

时间:2016-04-01 11:56:09

标签: jquery

我试图获取表单中的所有输入,并使用来自数据库的值填充文本字段。我想问是否有其他方法可以做到这一点,因为目前我使用的是嵌套的switch case,看起来很糟糕。所以这是我的代码:

function filled(data){
    modal.find('.form-control, input').each(function(index, el) {
        var element = $(this).attr('name'),
                $this = $(this);

        switch($this.get(0).tagName){
            case "INPUT" :
                var $type = $this.attr('type');
                switch($type){
                    case "radio": case "checkbox":
                        if($this.prop('value') == data[element])
                            $this.prop('checked', true);
                        break;
                    case "text": case "number":
                        $this.val(data[element]);
                        break;
                }
                break;
            case "TEXTAREA" :
                $this.text(data[element]);
                break;
        }
    });
}

1 个答案:

答案 0 :(得分:1)

您可以尝试if...else..if构建is()

function filled(data) {
  modal.find('.form-control, input').each(function(index, el) {
    var element = $(this).attr('name'),
      $this = $(this);

    if ($this.is(':radio, :checkbox')) {
      //stuff
    } else if ($this.is(':text, [type="number"]')) {
      //stuff
    } else if ($this.is('textarea')) {
      //stuff
    }
  });
}