2017-10-20 66 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」){}'到第一個函數並刪除了第二個函數。 –