简短的问题是,当我填充<div>
包含type=submit
按钮时,.click(function(){...}
功能失败。
我正在做的是,#formDialogButton
打开#accordion
填充.ajax()
,其中#userForm
包含input type=submit
。当客户端点击提交时,它应该触发.ajax()
php执行数据库操作并返回#userform
之一。
$(".formDialogButton").click(function(){
var userDialog = "#" + this.id + "Dialog";
$("#userForm, #siteForm, #limitForm").html("<img src='ajax-loader.gif' />");
$("#userForm, #siteForm, #limitForm").load("ajax.php", {op: "forms"}, function(responseTxt,statusTxt,xhr){
$("#userForm").html($("#user").html());
$("#siteForm").html($("#site").html());
$("#limitForm").html($("#limit").html());
if(statusTxt=="success") {
$(userDialog).dialog({
autoOpen: false,
draggable: true,
modal: true,
resizable: true,
width: 700,
position: { within: "#mainContent" }
});
$(userDialog).dialog("open");
$( "#accordion").accordion({
collapsible: true,
heightStyle: "content",
});
};
if(statusTxt =="error")
alert("Error: "+xhr.status+": "+xhr.statusText);
});
});
这是有效的,并在表单中返回<input class="submitAndReturn" type="submit" value="Submit" />
。但我无法找到&#34;它可以做任何事情。
$(".submitAndReturn").click(function() {
alert ('this is where I call my regular .formSubmitButton and let success: function() do a .formDialogButton ');
});
我是一个自学成才的业余爱好者所以请原谅我并尽力帮助。感谢
答案 0 :(得分:3)
听起来您正试图在页面上加载元素之前添加click事件。变化
$(".submitAndReturn").on("click", function() {
alert ('as .submit and return is dynamically loaded. so, use on function');
});
到
$(document).on("click", ".submitAndReturn", function(e) {
e.preventDefault(); //cancel the click action if needed
alert ('as .submit and return is dynamically loaded. so, use on function');
});
答案 1 :(得分:0)
$(".submitAndReturn").on("click", function() {
alert ('as .submit and return is dynamically loaded. so, use on function');
});
答案 2 :(得分:0)
我正在做的是这样,#formDialogButton打开#accordion填充.ajax()包含#userForm,输入类型= submit
如果我理解正确.formDialogButton
在.ajax()
回调事件中加载了DOM元素。
如果您在标题或页面末尾加载上面讨论的javascript,很可能$(".formDialogButton").click(function()
事件未附加到DOM。
这是因为在AJAX获取必须附加事件的所需DOM之前,脚本已经被触发。您需要在.ajax()
成功回调中附加事件。像
$.ajax({
url: 'YOUR_URL_TO_FETCH_FORM',
success: function(data) {
// associate click
$(".formDialogButton").click(function() // rest of the code
}
});