2017-10-20 68 views
0

我有这个网站jQuery的形式,除了一个元素

<form id="Numbers"> 
     <select name="Type" id="Type"> 
      <option value="1">1</value> 
      <option value="2">3</value> 
      <option value="3">3</value> 
     <select> 
     <input name="SomeText"> 
     <input type="submit"> 
    </form> 

而且这个jQuery:

$(document).on("change submit", "#Numbers", function() { 
    //Do things and submit 
}); 

我能以某种方式检测哪些领域进行了更改,因此,如果我有第二个功能,其中Type是表单中选择字段的编号。编号:

$(document).on("change", "#Type", function() { 
     //Do different things and submit 
    }); 

我想以不会同时触发的方式进行设置。

或者我可能需要像

$(document).on("change submit", "#Numbers", function() { 
    //Do things and submit 

    if(changed child is #Type) 
    {} 
    else 
    {} 
}); 

但我不知道正确的语法。

+1

两个人怎么会火?每个元素的ID是唯一的吗? –

+0

“数字”是一种形式,该函数在任何子元素发生更改时触发,“类型”是该表单的子元素,但当“类型”更改时我需要稍微不同的操作。 –

+0

您应该发布HTML – ProEvilz

回答

1

如果我没有理解错误,您需要捕获表单内所有元素的更改事件,然后为特定元素您要触发单独事件到某些操作。这是我写的小提琴手Capture element id

$(document).ready(function() { 
    $('#test').on('change',function(event){ 
    alert(event.target.id); 
    }); 
}); 



<form id='test'> 
    <input type='text' id='text0' /> 
    <input type="text" id='text1'/> 
</form> 

使用event.target.id你可以做其他操作与元素,也可以将呼叫重定向到其他jQuery函数。

+0

是的,这是我需要的,我添加了if(event.target.id ==“Type”){}'到第一个函数并删除了第二个函数。 –