ajax加载内容后无法验证数量

时间:2016-07-01 03:45:07

标签: javascript php jquery ajax

这是我的例子:

$.ajax({
   type: "POST",
   url: "some.php",
   data: "fname=John&lname=Due",
   success: function(result){
      $('#content').html('Label 1: <input name="quantity[]" class="quantity"> Label 2: <input name="quantity[]" class="quantity">');
   }
});

并且js验证数量

    $(".quantity").keydown(function (e) {
        // Allow: backspace, delete, tab, escape, enter and .
        if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110]) !== -1 ||
            // Allow: Ctrl+A, Command+A
            (e.keyCode == 65 && ( e.ctrlKey === true || e.metaKey === true ) ) || 
            // Allow: home, end, left, right, down, up
            (e.keyCode >= 35 && e.keyCode <= 40)) {
            // let it happen, don't do anything
            return;
        }
        // Ensure that it is a number and stop the keypress
        if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
            e.preventDefault();
        }
    });

3 个答案:

答案 0 :(得分:1)

.html()是一个函数,其中要在调用时传递要设置为新html的参数,除非使用.html(function(index, html){})模式,其中新html为{{ 1}}函数回调;未设置为return的属性值。替代

.innerHTML

$('#content').html('Label 1: <input name="quantity[]" class="quantity"> Label 2: <input name="quantity[]" class="quantity">');

使用事件委派将$('#content').html = 'Label 1: <input name="quantity[]" class="quantity"> Label 2: <input name="quantity[]" class="quantity">'; 事件附加到动态创建的keydown元素;或在创建元素时附加事件

.quantity

答案 1 :(得分:1)

正如其他人所提到的,你必须正确使用html()函数。

顺便说一下,如果你动态创建html内容,你也必须绑定事件。

$.ajax({
    type: "POST",
    url: "some.php",
    data: "fname=John&lname=Due",
    success: function(result){
        $('#content').html = 'Label 1: <input name="quantity[]" class="quantity"> Label 2: <input name="quantity[]" class="quantity">';

        $(".quantity").unbind("keydown").bind("keydown", function() {
            // your validation code should goes here
        });
    }
});

答案 2 :(得分:0)

.html是一种你无法分配的方法,所以请按照这样的方式参考http://api.jquery.com/html/

$('#content').html('Label 1: <input name="quantity[]" class="quantity"> Label 2: <input name="quantity[]" class="quantity">');