jquery传递输入keyup的id和值

时间:2016-08-05 12:17:26

标签: jquery

我动态创建行,但我还需要传入控件的id和值

function AddClient() {
    var uuid = guid();
    $("#clientList").append("<row><input type='text' placeholder='type to search' name='clientName' id='ClientName" + uuid + "' class='form-control' onkeyup='SearchClient($(this).attr('id'),$(this).val())'></row>")


            function SearchClient(id, term) {
        //do some lookups
        }

得到错误(index):2 Uncaught SyntaxError: Unexpected token }

我的问题是$(this).attr('id'),我应该用什么想法替换它?

5 个答案:

答案 0 :(得分:1)

你可能错过了代码。

您可以“id”替换另一个文本,例如;

id='ClientName" + uuid

替换为“clientName”

clientName='ClientName" + uuid

因为您将自定义attr添加到html.Call clientName attr;

$(this).attr('clientName')

答案 1 :(得分:1)

建议代码重构可能很愚蠢,但如果你刚开始考虑这样做:

$scope.sync = function(){
$http.get(ip+'/tarefas/'+window.localStorage.getItem("user")).success(function(data) {
  $scope.loading = false;
  setTimeout(function () {
      $scope.$apply(function(){
          $scope.loading = true;
      });
  }, 1200);
  $scope.task = angular.fromJson(data);
});
}

优点:单一装订

缺点:绑定在文档上,您可能希望将其绑定在其包含的表中。

答案 2 :(得分:1)

你可以这样做

function AddClient() {
    var uuid = guid();
    $("#clientList").append("<row><input type='text' placeholder='type to search' name='clientName' id='ClientName" + uuid + "' class='form-control' onkeyup='SearchClient(this)'></row>");
}


function SearchClient(elemt) {
    id= $(elemt).attr('id');
    term= $(elemt).value();
    //do some lookups
}

答案 3 :(得分:0)

试试这个,你的代码所具有的问题是keyup函数中id之前的“'”。

$("#clientList").append("<row><input type='text' placeholder='type to search' name='clientName' id='ClientName" + uuid + "' class='form-control' onkeyup='SearchClient($(this).attr(\"id\"),$(this).val())'></row>")

答案 4 :(得分:0)

由于您正在使用jQuery,请使用jQuery。完全删除内联代码,只为这些元素添加一个事件处理程序。像这样:

$(document).on('keyup', 'input[id^=ClientName]', function () {
    SearchClient($(this).attr('id'),$(this).val());
});

然后你根本不需要内联代码:

$("#clientList").append("<row><input type='text' placeholder='type to search' name='clientName' id='ClientName" + uuid + "' class='form-control'></row>");

注意:您可能在调试时出错并且错误来自附加DOM元素的代码,而不是其中执行的代码。在代码中注意,语句后面有一个缺少的分号。如果问题中的代码是一个完整的例子,那就有点格式错误了。