jquery添加的表单 无法用val获取表单里面的值

本身就在html里面有的表单可以获取但是用js添加的表单就获取不到其中的值了?这个该怎么解决啊?<scriptsrc="js/jquery-1.9.1.min.js"ty... 本身就在html里面有的表单可以获取 但是用js添加的表单 就获取不到其中的值了? 这个该怎么解决啊?
<script src="js/jquery-1.9.1.min.js" type="text/javascript"></script>
</head>

<body class="">
<table id="table">
<tr>
<td><input name="val[]" type="text"/></td>
</tr>
</table>
<div id="button">添加一个input</div>
</div>
</body>
</html>
<script>
$(function(){
$("#button").click(function(){
inp = '<tr>'+
'<td><input name="val[]" type="text" /></td>'+
'</tr>';
$("#table tr:last").after(inp);
});
$("#table input").blur(function(){
alert('ss');
});
})
</script>
展开
 我来答
suxueduwang
推荐于2016-05-27 · TA获得超过654个赞
知道小有建树答主
回答量:209
采纳率:33%
帮助的人:240万
展开全部
// 其实这样是正常的啊,你为 input 添加 onblur 事件,但是你后来添加的 input 并没有为它绑定 onblur 事件,所以是不会执行你的 alert('ss') 的,如果每次页面一遍就要全部重新绑定,那效率会很慢的,你可以为新的 input 绑定方法,如下修改你的代码:
<script type="text/javascript">
    $(function() {
        // 为你的 input 绑定 onblur ,执行 myalert() 方法
        $("#table input").blur(function() {
            myalert();
        });
        // 点击的时候新增一个按钮,这个按钮有 onblur="myalert()"
        // 当然,你这里也可以把 input 抽离出来
        // 这里你的 inp 是一个 jquery 对象,建议用 $(); 包起来,否则火狐好像有些版本不兼容
        $("#button").click(function() {
            var inp = $('<tr><td><input name="val[]" type="text" onblur="myalert()" /></td></tr>');
            $("#table tr:last").after(inp);
        });
    })
    // 这是你的 alert 方法,为了公用,就抽离出来
    function myalert() {
        alert("ss");
    }
</script>

// 另外你也可以使用 live 来绑定 onblur 事件,使用 live 的话,你的对象每次一发生改变,则会重新执行绑定和加载事件,效率可能比较慢,但是也可以实现效果,修改你的代码如下:
<script type="text/javascript">
    $(function() {
        $("#table input").live("blur", function() {
            alert("ss");
        });
        $("#button").click(function() {
            var inp = $('<tr><td><input name="val[]" type="text" /></td></tr>');
            $("#table tr:last").after(inp);
        });
    }) 
</script>
好代码分享
2014-03-17 · 专注互联网好代码分享
好代码分享
采纳数:121 获赞数:1337

向TA提问 私信TA
展开全部

不知道的人不要乱回答,你这个是动态添加dom元素,没有办法这样绑定事件,不过你可以这样写代码:

$("#table input").live('blur',function(){
alert('ss');
});

如果不知道live是什么意思,建议你可以看下jquery在线文档,里面说明很详细。

jquery.xiamiz.com

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pellolove
2014-03-17 · 超过52用户采纳过TA的回答
知道小有建树答主
回答量:164
采纳率:100%
帮助的人:57.9万
展开全部
先贴出部分代码吧,可能是你添加的代码 name 属性 有重复或者根本没找到dom
追问
代码已经贴出 看看是怎么回事啊 比如点到添加的第二个 没办法弹出alert
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式