我有一个块里面有很多小块。我想编辑那些小块并立即保存。因此,当我点击编辑时,我有一个弹出窗体,当提交所需的数据时会给我新的数据。现在的问题是,当我编辑第一个块然后继续编辑第二个块后,提交点击下拉列表仍然给我以前的ID而不是新的ID。我在哪里做错了?我只是无法得到它。我还尝试在每次提交后删除所选属性
$('#overlay_form').find('select.getdata option:selected').attr('selected', '');
我的代码在这里:
http://jsfiddle.net/samjhana/AbyLN/3/
欢迎任何帮助或建议。提前谢谢。
答案 0 :(得分:2)
根据你的小提琴,你必须使变量controllerID全局或至少由两个事件共享。
var controllerId;
$('select.getdata').live('change', function(e){
//e.preventDefault();
e.stopPropagation();
...
GetData X的click事件不应该在change事件中。
$('a.ok').click(function(e){
e.preventDefault();
e.stopPropagation();
alert(controllerId);
...
以下是对小提琴的更新
答案 1 :(得分:1)
问题似乎是你将多个事件绑定到 “GetData”链接
$('a#btn_getdata').click(function(){
e.preventDefault();
var pos = $('input.position').val();
var url = $('input[name=url]').val();
});
//and
$('a.ok').click(function(){
});
点击事件会添加到同一个标签中。尝试重写代码,以便你拥有所有逻辑
$('a.ok').on('click', function(){
});
另请注意,从jQuery 1.7开始,不推荐使用.live()方法。如果你需要将事件绑定到稍后将通过ajax出现的不存在的html节点,你可以这样做
$('document').on('click', 'a.ok', function(){
});
希望这有帮助。
答案 2 :(得分:1)
我认为你需要简化这个
关于下拉列表的更改事件
$('select.getdata').change(function(){
var id= $(this).val();
if(id==1)
{
// here is your code
}
else if(id==2)
{
//here is your code
}
});
$('a#btn_getdata').click(function(){
var id= $('select.getdata').val();
if(id==1)
{
// here is your code
}
else if(id==2)
{
//here is your code
}
});