javascript - ID 选择器不适用于输入类型提交

标签 javascript jquery

当我点击总计按钮时,我试图读取一个表,该按钮是在带有表的 ajax 调用上创建的,我尝试使用 id 属性和输入类型提交选择器,但我无法读取该按钮,但是当我试图在按钮上调用 javascript 函数单击调用 javascript 函数,任何人都可以解释这个以及我应该如何阅读使用 jquery 选择器

$.ajax({
        type:'POST',    
        url:'/pos/addproduct',
        dataType: "json",
        data:JSON.stringify(order),
        contentType: "application/json; charset=utf-8",
        success:
            function(data){
             i++;
             console.log(i);
            $.each(data,function(index,value){
                var temp = "qty" + data[index].barcodeid.trim();
                var qtyitm=$("#"+temp);

                if(qtyitm.length != 0){
                    qtyitm.html(data[index].qty);
                    //("#price"+(data[index].barcodeid.trim())).html(data[index].price);
                    temp = "price" + data[index].barcodeid.trim();
                    qtyitm = $("#"+temp);
                    qtyitm.html(data[index].price);
                }
                else{
                    var row=$("<tr><td>"+data[index].oid+"</td>"+"<td>"+data[index].pname.trim()+
                            "</td>"+
                            "<td id=\"qty"+data[index].barcodeid.trim()+"\">"+data[index].qty+"</td>"+
                            "<td id=\"price"+data[index].barcodeid.trim()+"\">"+data[index].price+"</td>"+
                            "<td>"
                            +data[index].barcodeid.trim()+"</td></tr>"

                    );
                    $("#firstrow").after(row).removeClass("hidden");
                    }

            })
            if(i==1){
            var row1=$("<tr><td>"+'<input type="submit" id="calculateTotal" value="Total">'+"</td></tr>");
            $("#order tbody").append(row1);
            }
        }

})
});
$('input[id="calculateTotal"]').click(function(event){
    alert("hello");
})

id selector not working

最佳答案

由于提交按钮 #calculateTotal 是通过 js 代码动态添加的:

$("<tr><td>"+'<input type="submit" id="calculateTotal" value="Total">'+"</td></tr>");

你应该使用事件委托(delegate) on() click 事件附加到它,例如:

$('body').on('click', 'input[id="calculateTotal"]', function(event){
    alert("hello");
})

希望这对您有所帮助。

关于javascript - ID 选择器不适用于输入类型提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42232318/

相关文章:

javascript - jQuery/Bootstrap3 : Disable/hide button after submit

javascript - 所有具有类名的元素在 JS 中都有 html

javascript - 我可以使用揭示模式将 ES6 JavaScript 程序分解为单独的文件吗?

javascript - jquery DatePicker 按钮图像不起作用

javascript - 向 Promise.all() 添加一个 Promise

javascript - 正则表达式匹配 wp-config 中的身份验证 key

javascript - 下拉列表的值 -> 文本框展开

javascript - 'Cannot read property 'lastChild' of null' 节点不存在怎么办?

javascript - 为什么 lodash `_.all([true, true, true], true);` 返回 `false` ?

javascript - 如果单击“确定”按钮,则在模式关闭后执行代码