我在使用jquery提交表单时遇到了一些问题。我过去曾经提交过很多表单,但我只是在想,如何使用事件处理程序.submit()来提交表单,而不是表单ID中的元素。问题是我似乎无法用$(this)链接元素(可能使用.children()但我只想通过输入字段使用.each())。
以下是代码段:
$('.editTimeLink').click(function () {
var id = $(this).attr('rel');
$.get('<?php echo $config["httpRoot"]; ?>/ajax.php?ajax=1&sec=time&a=edit&id=' + id, {}, function (data) {
if (data.returnCode == 1) {
$('#timeBox_' + id).html(data.data);
$('#timeBox_' + id + ' form').bind('submit', function () {
//$(this).$(':input').each(function () {
//$(this).(':input').each(function () {
$(this).each(':input', function () {
alert("adsf");
});
return false;
});
} else if (data.returnCode == 0) {
alert(data.data);
}
}, 'json');
return false;
});
就像你可以看到我试图以“this”形式为每个输入元素警告字符串“asdf”。
你可以看到我试图管理的两行被注释掉的地方。未注释掉的行也不起作用。我知道如何解决这个问题,例如将表单选择器名称传递给lambda函数,但我只是在考虑是否有更“干净”的方法来执行此操作?
提前致谢。 Kristinn。
答案 0 :(得分:2)
.children()选择直接子项,因此如果表单中有表或其他标记,则需要使用.find()
$(this).find(':input').each(function(i){
console.log($(this).val()); //$(this) now contains the current form field in the loop
});
答案 1 :(得分:1)