Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 为什么我在下拉过程中获得上一个id_Jquery_Html Select - Fatal编程技术网

Jquery 为什么我在下拉过程中获得上一个id

Jquery 为什么我在下拉过程中获得上一个id,jquery,html-select,Jquery,Html Select,我有一个街区,里面有很多小街区。我想编辑那些小的块,然后一次保存所有的块。因此,当我点击编辑,我有一个弹出的形式,当提交所需的数据将给我新的数据。现在的问题是,当我编辑第一个块,然后在提交后继续编辑第二个块时,单击下拉列表仍然给我以前的id而不是新的id。我哪里做错了?我就是搞不懂。我还尝试在每次提交后删除所选属性 $('#overlay_form').find('select.getdata option:selected').attr('selected', ''); 我的代码在这里:

我有一个街区,里面有很多小街区。我想编辑那些小的块,然后一次保存所有的块。因此,当我点击编辑,我有一个弹出的形式,当提交所需的数据将给我新的数据。现在的问题是,当我编辑第一个块,然后在提交后继续编辑第二个块时,单击下拉列表仍然给我以前的id而不是新的id。我哪里做错了?我就是搞不懂。我还尝试在每次提交后删除所选属性

$('#overlay_form').find('select.getdata option:selected').attr('selected', '');
我的代码在这里:


欢迎任何帮助或建议。提前感谢。

问题似乎是您正在将多个事件绑定到 “获取数据”链接

单击事件将添加到同一个标记中。试着重写你的代码,这样你就有了所有的逻辑

 $('a.ok').on('click', function(){
 });
另外请注意,从jQuery1.7开始,.live()方法已被弃用。如果需要将事件绑定到不存在的html节点(稍后将通过ajax显示),可以这样做

$('document').on('click', 'a.ok', function(){
 });

希望这能有所帮助。

问题似乎是您正在将多个事件绑定到 “获取数据”链接

单击事件将添加到同一个标记中。试着重写你的代码,这样你就有了所有的逻辑

 $('a.ok').on('click', function(){
 });
另外请注意,从jQuery1.7开始,.live()方法已被弃用。如果需要将事件绑定到不存在的html节点(稍后将通过ajax显示),可以这样做

$('document').on('click', 'a.ok', function(){
 });

希望这能有所帮助。

我想你需要简化一下

下拉列表的更改事件

$('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
 }     

});

我认为你需要简化这个

下拉列表的更改事件

$('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
 }     

});

根据您的小提琴,您必须使变量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);
...
这是你小提琴的更新


根据您的小提琴,您必须将变量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);
...
这是你小提琴的更新


这没用,但我了解了一些新的东西。任何其他选择。对我来说,你的方法似乎是导致问题的原因。您需要将单个事件处理程序绑定到主提交按钮。然后在其中,您需要检查选择的下拉列表的值,并相应地处理表单提交。祝你好运。这没用,但我了解了一些新的东西。任何其他选择。对我来说,你的方法似乎是导致问题的原因。您需要将单个事件处理程序绑定到主提交按钮。然后在其中,您需要检查选择的下拉列表的值,并相应地处理表单提交。祝你好运。谢谢你的解决方案。请帮助我解决它,但为什么我的代码不起作用。此代码中的一个错误是var id=$(this.val();在$('a#btn_getdata')内。单击块。您应该获取选择按钮的值。此处将显示按钮的值。id应设置为两个函数之外的全局。谢谢您的解决方案,请帮助我解决此问题,但为什么我的代码不起作用。此代码中的一个错误是变量id=$(this).val();在$('a#btn_getdata')内。单击块。您应该获取选择按钮的值。此处将显示按钮的值。在两个函数之外,id应设置为全局。