我尝试使用jQuery在表单中循环输入元素,以便我可以进行一些轻量级的客户端验证。我使用Django来生成页面服务器端,而我遇到的问题是特定页面有很多动态生成的表单,所以我不知道它们的id是不可知的。如果我这样做,我可以很容易地进行验证。
因此,在我的javascript中,我试图捕获表单的提交操作,并在找到时,以某种方式获取输入元素,以便我可以检查参数。这是我在其他方面尝试过的事情:
$(".s-inputs").submit(function(event){
$(this).filter(':input').each(function(){
console.log("Doesn't work");
});
event.preventDefault();
});
我尝试包含生成下面的html表单的django代码,但是模板系统中的某些东西正在抛弃Stack Overflow的格式化。无论如何,我认为这本来不会很有启发性。基本上我的html只是页面上的任意数量的表单,每个表单都有任意数量的输入,都是动态生成的服务器端。他们共同的唯一共同点是课程输入。"
感谢您的帮助。
答案 0 :(得分:0)
您应该使用find()
,而不是filter()
:
$(this).find(':input').each(function(){
console.log("Doesn't work");
});
filter()
尝试过滤当前选定的元素(当前只是您的form
元素)并删除任何未被过滤的内容。这不会返回任何内容,因为form
元素与:input
不匹配。
find()
搜索当前所选元素中包含的任何匹配选择器。这将匹配:input
中包含的任何匹配的form
元素。