b.apply不是一个功能

问题描述 投票:-1回答:1

我有一个AngularJS表单,我有限制不编辑已经开发的代码,现在我必须为表单的每个字段添加预先填充的默认值。

我正在尝试选择表格

var x  = $(".form-group");

循环遍历每个子元素的表单

var x  = $(".form-group")
$(x).each((index, value) => console.log(value.children))

我将默认值放入数组

var defaulttext = ["a", "b", "c", "d", "e", "f"];

然后将值分配给字段

$(value.children).val(value);

以下是完整代码:

var x  = $(".form-group");
var defaulttext = ["yogeesh", "[email protected]", "88616649678"];

$(x).each(defaulttext , function (index, value){
  $(element.children).val(defaulttext[index]);
});
<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container">
<form>

    <div class="form-group">
      <label for="inputdefault">Name</label>
      <input class="form-control" id="inputdefault" type="text">
    </div>
    
    <div class="form-group">
      <label for="inputlg">Email ID</label>
      <input class="form-control input-lg" id="inputlg" type="text">
    </div>
 
     <div class="form-group">
      <label for="inputlg">Phone Number</label>
      <input class="form-control input-lg" id="inputlg" type="text">
    </div>
    
  </form>
</div>

</body>
</html>

但我在控制台中收到错误:b.apply不是一个函数

javascript jquery dom
1个回答
2
投票

看起来你正试图混合两件事:

$(x).each(callback)

它迭代$(x)中的DOM元素,和

$.each(defaulttext, callback)

迭代数组。你不能在一个电话中同时做这两件事。

$(x).each()只接受一个参数,一个回调函数。你不能在函数之前放置defaulttext,它会尝试使用该数组作为回调。

但是,回调的第一个参数是索引,因此您可以使用它来引用您想要访问的其他内容。

var x = $(".form-group");
var defaulttext = ["yogeesh", "[email protected]", "88616649678"];

$(x).each(function(index, value) {
  $(value).children().val(defaulttext[index]);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>

  <div class="form-group">
    <label for="inputdefault">Name</label>
    <input class="form-control" id="inputdefault" type="text">
  </div>

  <div class="form-group">
    <label for="inputlg">Email ID</label>
    <input class="form-control input-lg" id="inputlg" type="text">
  </div>

  <div class="form-group">
    <label for="inputlg">Phone Number</label>
    <input class="form-control input-lg" id="inputlg" type="text">
  </div>

</form>

另外,children是一个jQuery方法,所以你应该在$(element)的结果上调用它,而不是在调用中。

而且你不需要写$(x)x已经是一个jQuery对象,你不需要再次调用$(),它只会创建一个对象的新副本。

© www.soinside.com 2019 - 2024. All rights reserved.