我的页面上有这个脚本
$('.konfirmtoko').submit(function(e){
e.preventDefault();
alert("Test");
})
$('.kliknomor').click(function(){
var isitabel = [];
$.get('getdata', function (data){
var data = $.parseJSON(data);
$.each(data, function(i, item){
var forbutton = [$('<input>').attr({type: 'hidden', name: 'hiddenvalue', value: item.somevalue}),
$('<button>').text("Konfirmasi")];
forbutton = $('<form>').attr({
action: 'formsubmit',
class: 'konfirmtoko'
}).append(forbutton);
isitabel.push(forbutton);
});
$('.isitabelview').empty();
$('.isitabelview').append(isitabel);
});
})
当我单击带有'kliknomor'类的按钮时,它会显示一些带有'konfirmtoko'类的表单以及每个表单的单个按钮。我希望表单提交也使用jQuery处理。但是,我的脚本的前四行从未被调用过。有没有我错过的东西?
修改 我在一些表单提交上做了成功,它显示了页面加载时的表单(使用php生成的表单)。此表单使用jquery生成。
答案 0 :(得分:1)
我认为这是因为您的var clickedOnScrollbar = function(mouseX)
{
if( $(window).outerWidth() <= mouseX ){
return true;
}
}
$(document).mousedown(function(e){
var isRightMB;
e = e || window.event;
if ("which" in e)
isRightMB = e.which == 3;
else if ("button" in e)
isRightMB = e.button == 2;
if(isRightMB){
if( clickedOnScrollbar(e.clientX) ){
alert("Right click is not allowed");
}
}
});
表格在初始页面加载时尚未提供,因此您可以为尚未提供的内容提供事件监听器。我尝试在您的循环中的表单的.konfirmtoko
属性中添加preventDefault
以及该作品。以下是我修改过的代码:
onsubmit
注意:我还为循环生成的每个表添加id,只是为了使它们彼此唯一,以防你需要这些表为其他目的而变得独一无二p>
答案 1 :(得分:0)
有两种方法可以解决您的问题:
1)您可以使用.delegate()方法进行表单提交,如下所示:
$( ".isitabelview" ).delegate( ".konfirmtoko", "submit", function(e) {
e.preventDefault();
alert("Test 1");
});
2)如果上面的解决方案不起作用,那么你可以在.get()方法中编写你的提交函数。如下所示:
$('.kliknomor').click(function(){
var isitabel = [];
$.get('getdata', function (data){
var data = $.parseJSON(data);
$.each(data, function(i, item){
var forbutton = [$('<input>').attr({type: 'hidden', name: 'hiddenvalue', value: item.somevalue}),
$('<button>').text("Konfirmasi")];
forbutton = $('<form>').attr({
action: 'formsubmit',
class: 'konfirmtoko'
}).append(forbutton);
isitabel.push(forbutton);
var formEvent= '$( ".isitabelview" ).delegate( ".konfirmtoko", "submit", function(e) {';
formEvent += 'e.preventDefault();';
formEvent += 'alert("Test 1");';
formEvent += '});';
isitabel.push(formEvent);
});
$('.isitabelview').empty();
$('.isitabelview').append(isitabel);
});
})