jquery问题,为什么通过append增加的input,无法获取id名称?
     $("form button").click(function () {

        $("#newinput").empty();
        if ($(this).attr("id") === "newpren") {
            $("#newinput").append("<input id=\"newclass\"  name=\"newclass\"  style=\"margin-top:10px;\" mtype=\"str:4:30\" class=\"form-control\" placeholder=\"新父类名称\" min=\"5\" max=\"30\" type=\"text\"/>");
        }
        if ($(this).attr("id") === "oldclass") {
            $("#newinput").append("<input id=\"oldclass\"  name=\"oldclass\"  style=\"margin-top:10px;\" mtype=\"str:4:30\" placeholder=\"旧子类列表\" class=\"form-control\" min=\"5\" max=\"30\" type=\"text\"/>");//ajax抽取后台数据?
        }

    });

            $("#submit").click(function () {
        var sumQ = $("#MTform").serializeArray();
        var strs;
        for (i = 0; i < sumQ.length; i++) {
            // if(sumQ[i]){}
            strs = strs + sumQ[i].name + " , ";    //上面比如创建了oldclass的输入框,这里怎么也获取不到其name值呢?表单默认有的input里的id都可以获取,唯独这个动态创建的不行,郁闷
        }
        alert(strs);
    });

谢谢各位帮忙

8个回答

发你的html结构来看下,可能是某些标签没闭合浏览器解析出错了,你添加的html代码就没进入MTform这个表单中

u014353911
wuruize888 发现了,在sumbit提交前执行了empty(),是我太粗心。谢谢
大约 3 年之前 回复

动态创建的元素绑定事件,或者获取值的方法
1.在动态生成后获取,如果是ajax回调之类的,在回调函数后面绑定
2.使用delegate (事件委托),为现在或将来的元素绑定事件,
举例http://www.runoob.com/jquery/event-delegate.html

属于未来元素,通过事件委托来绑定事件

你f12调试一下看你控制有有没有报错,看你jquery用的什么版本,最好不能低于1.11了,你这代码看上去没啥毛病,你加断点调试一下吧,看到哪里
出错了!还有给你个建议,拼字符窜的时候外层用单引号,然后里面的属性用双引号,别用反斜杆了,丑死,'',这样

u014353911
wuruize888 谢谢
大约 3 年之前 回复

图片说明

  $("#submit").click(function () {
        var sumQ = $("#MTform").serializeArray();
        var strs;
        for (i = 0; i < sumQ.length; i++) {
            // if(sumQ[i]){}
            strs = strs + sumQ[i].name + " , "; //这里面的i变量就符合上面所说的原理
u014353911
wuruize888 可以告诉我具体怎么用不?我想获取动态加载input的id。谢谢
大约 3 年之前 回复

在form表单中你执行了点击操作后,执行了append函数,这没毛病。
但是,同时这个点击事件也提交了表单,使得刚才append的内容又消失了。
所以,你取不到值。。。

你用prop这个函数获取id试试 , jq必须是1.6或以上的

对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。



做了个demo 没问题啊 jquery 版本是1.12的 也没问题 看看是否写错了

qq_27987971
天马飞瀑 append input 的value为空,后面输入后,再打印出input的值,拿不到
大约 2 年之前 回复
weisheixiaoxin
weisheixiaoxin 回复wuruize888: 咋地 弄好了?
大约 3 年之前 回复
u014353911
wuruize888 太感谢了
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐