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> 展开
<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> 展开
3个回答
展开全部
// 其实这样是正常的啊,你为 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>
展开全部
不知道的人不要乱回答,你这个是动态添加dom元素,没有办法这样绑定事件,不过你可以这样写代码:
$("#table input").live('blur',function(){
alert('ss');
});
如果不知道live是什么意思,建议你可以看下jquery在线文档,里面说明很详细。
jquery.xiamiz.com
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先贴出部分代码吧,可能是你添加的代码 name 属性 有重复或者根本没找到dom
追问
代码已经贴出 看看是怎么回事啊 比如点到添加的第二个 没办法弹出alert
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询