名称选择器未在功能中识别

时间:2014-10-05 09:45:25

标签: javascript jquery

当用户点击按钮时,我正在创建动态输入。这是创建输入ok,但在我的函数中,它没有响应我指定的名称。换句话说,不启动该功能。 firebug或我使用的任何其他控制台都没有错误。我是否以正确的方式使用名称选择器?。

如果有人能指出为什么这个功能没有解雇,我将不胜感激。非常感谢

更新: 我终于设法解决了这个问题:

$('input[name="box_add[]'+FieldCount+'"]').inputlimiter({
    limit: 1,
    limitBy: 'words',
    remText: 'You only have %n word%s remaining...',
    limitText: '<b><font color=\"red\">Field limited to %n box%s.</font></b>'
    });

创建输入的功能。这工作正常

$(function() {

  var MaxInputs       = 19; //maximum input boxes allowed
  var InputsWrapper   = $("#INTKInputsWrapper"); //Input boxes wrapper ID
  var AddButton       = $("#INTKAddMoreFileBox"); //Add button ID

  var x = InputsWrapper.length; //initlal text box count
  var FieldCount=1; //to keep track of text box added

  $(AddButton).click(function (e)  //on add input button click
  {
  if(x <= MaxInputs) //max input box allowed
  {
  FieldCount++; //text box added increment
  //add input box
  $(InputsWrapper).append('<div><input style="margin-left: 16px; margin-bottom: 12px; width: 250px; height:30px;" type="text" class="boxadddef" name="box_add[] '+FieldCount+'" required="required" /><a href="#" class="removeclass"><img src="/domain/users/css/images/redclose.png" style="margin-left: 10px; margin-right:10px;" /></a><span class="removespan" style="margin-left:2px;font-size:10px;color: grey;">Remove</span></div>');
  x++; //text box increment
  }
  return false;
  });

  $("body").on("click",".removeclass", function(e){ //user click on remove text
  if( x > 1 ) {
  $(this).parent('div').remove(); //remove text box
  x--; //decrement textbox
  FieldCount--;
  }
  return false;
  }) 

  });

不正确的功能

$(function() { 
  $('input[name="box_add[]"]').inputlimiter({
        limit: 1,
        limitBy: 'words',
        remText: 'You only have %n word%s remaining...',
        limitText: '<b><font color=\"red\">Field limited to %n box%s.</font></b>'
    }); 
  });

1 个答案:

答案 0 :(得分:3)

两种可能性。

  1. 请注意input标记:

    $(InputsWrapper).append('...name="box_add[] '+FieldCount+'"...');
    //                               ^^^^^^^^^^^^^^^^^^^^^^^^^^
    

    这会产生box_add[] 0(注意空格),box_add[] 1等名称。但是你正在寻找显然不匹配的name="box_add[]"。< / p>

    我的直觉说你真的不想在那里计算字段,但是如果你真的这样做了,你可能想要使用attribute-starts-with选择器:name^="box_add[]"

  2. 确保在创建所有input后,您正在执行后一个代码块。