0

我正在尝试使用 jQuery 在我的网页中附加一些 html。我的代码是

 var s1 = "<div class='controls'><label class='inline labelspace'>Minimum Cart Value<input class='inline input-small' type='text' name='mincart' onKeydown=isNumberKey ></input></label>";
s1 += "<label class='inline labelspace'>Minimum No Of Items<input class='inline input-small' type='text' placeholder='Enter Integer' name='minitem' onKeydown=isNumberKey></input></label>" ;
s1 += "<label class='inline labelspace'>Location<input class='inline input-small' type='text' name='location' ></input></label>";
s1 += "<label class='inline labelspace'>Product Ids<input class='inline input-small' onKeydown=isValid type='text' name='products'></input></label></div>" ;
$("#lastrow").before(s1);

isNumberKey 是一个函数,其源代码为

function isNumberKey(evt) {
  console.log('coming to this');
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;
    } else 
        return true;

}

使用这些功能,只能在文本框中输入数字。当我分配这样的一些元素时 $("#some_elem").onKeyDown(isNumberKey),它可以正常工作,但我想知道为什么它在第一种情况下不起作用。

4

2 回答 2

3

你必须参加delegate活动。利用 :

$(document).on('keydown' , '.some-class', isNumberKey);

如果您不append熟悉elements标记,则event不会绑定在它们上。所以你需要委托它。

使用 aclass而不是 a id。当然class需要添加到appended divor ,在这种情况下,input我猜。

如果您使用$('.some-class').on('event', function(){})该事件将仅附加具有.some-class. 使用委托将附加到event任何div你想要的。

于 2013-07-12T07:56:46.193 回答
-1

如果您想在 HTML 中伴奏,请尝试更改下面的代码

onKeydown="isNumberKey()"
于 2013-07-12T07:58:41.673 回答