2016-12-24 120 views
0

我有這個代碼,通過點擊「練習按鈕」將html元素添加到div元素。但是,當我單擊表單上的提交按鈕時,它不會調用「選定的實踐選項」。但是,我在網站上的其他表格稱爲「選定的實踐選項」。該代碼不會調用「Selected Practice Option」的jQuery事件。在jQuery代碼和html代碼中沒有錯誤。這是jQuery的錯誤?jQuery表單提交沒有被調用

/* Pratice Button Clicked Event */ 
    - 35  $("#ob-practice").click(function(){ 
    2 36   $("#newComboDiv").css("display","none"); 
    2 37   $("#practiceComboDiv").css("display","inline-block"); 
    2 38   var data = JSON.parse(localStorage.getItem('c')); 
    2 39   var text = "<form id='comboselect' action='#'> <select name='option-name'>"; 
    - 40   for (var i in data){ 
    3 41    var m = data[i]; 
    3 42    text += "<option> " + m.name + "</option>"; 
    3 43   } 
    2 44   text += "</select>" 
    2 45   text += "<button type='submit' value='submit'> Submit </button> </form>" 
    2 46   $("#combo-menu").html(text); 
    2 47  }); 
    | 48  /*Selected Practice Option */ 
    - 49  $("form").on("submit",function(e){ 
    2 50   e.preventDefault(); 
    2 51   var data = $('#comboselect').serializeArray(); 
    2 52   alert("test"); 
    2 53 
    2 54  }); 
+1

也顯示你的HTML,你有'form'元素嗎? – DavidG

+1

請創建一個完整的工作示例(使用snippet/jsfiddle/codepen),顯示所有內容如何協同工作(html/css/javascript) – Dekel

+0

'這是jQuery的錯誤嗎?'好吧,顯然不是你自信地說'There在jQuery代碼中沒有錯誤 - 雖然某些版本的jQuery庫有bug,但這些bug版本可能在任何地方都不可用,所以,有可能是您正在使用的jQuery庫的版本(來自信譽良好的源代碼,我希望)沒有任何錯誤 –

回答

1

$("#ob-practice")一個click,所述<form id='comboselect'>作爲$("#combo-menu")元件內的兒童是動態創建的。

試試「代表團」從$("#combo-menu")其具有標籤名稱form孩子:

$("#combo-menu").on("submit","form",function(e){ 
    e.preventDefault(); 
    var data = $('#comboselect').serializeArray(); 
    alert("test"); 
}); 
1

$("#ob-practice").click(function(){創建一個窗體

,這意味着還有就是對網頁,直到點擊事件觸發上沒有任何形式

您的代碼添加了一個偵聽器來提交事件$("form").on("submit",function(e){ - 但這是在任何表單存在之前完成的

您需要...這是對方的回答該死的毆打,嚴重的是,沒有人回答了將近20分鐘,BAM ......一次兩個答案:對

OK讓保存此

,也可以移動第47行到代碼片段的末尾......這樣你在創建表單後添加提交處理程序

- 35  $("#ob-practice").click(function(){ 
2 36   $("#newComboDiv").css("display","none"); 
2 37   $("#practiceComboDiv").css("display","inline-block"); 
2 38   var data = JSON.parse(localStorage.getItem('c')); 
2 39   var text = "<form id='comboselect' action='#'> <select name='option-name'>"; 
- 40   for (var i in data){ 
3 41    var m = data[i]; 
3 42    text += "<option> " + m.name + "</option>"; 
3 43   } 
2 44   text += "</select>" 
2 45   text += "<button type='submit' value='submit'> Submit </button> </form>" 
2 46   $("#combo-menu").html(text); 
| 48   /*Selected Practice Option */ 
- 49   $("form").on("submit",function(e){ 
2 50    e.preventDefault(); 
2 51    var data = $('#comboselect').serializeArray(); 
2 52    alert("test"); 
2 53 
2 54   }); 
2 47  });